文章目录
MCAL - GPT(NXP - S32K14x)
- 配置工具:EB Tresos Studio
- 芯片类型:S32K146
1. 概述
GPT模块 - 通用定时器,提供定时通知、定时唤醒功能。
1.1 定时器
S32K14x为GPT模块提供了4种定时源,一共38个通道。
定时源 | 描述 |
---|---|
LPIT | 低功耗中断定时器 |
FTM | 灵活定时器 |
LPTMR | 低功耗定时器 |
RTC | 实时时钟 |
1.2 时钟源
LPIT | FTM | RTC | LPTMR |
---|---|---|---|
SOSDIV2_CLK | SOSDIV1_CLK | LPO1_CLK | SOSDIV2_CLK |
SIRDIV2_CLK | SIRDIV1_CLK | RTC_CLK | SIRDIV2_CLK |
FIRCDIV2_CLK | FIRCDIV1_CLK | FIRCDIV2_CLK | |
SPLLDIV2_CLK | SPLLDIV1_CLK | SPLLDIV2_CLK |
在MCU模块的外设时钟配置中选择设置。
1.3 工作原理
定时:
以LPIT为例,在LPIT每个通道都有TVAL(重装载值)和CVAL(计数值),TVAL就是我们设定的定时时间,当启动后,CVAL就是加载TVAL的值然后不断递减,当递减到0的时候触发超时中断,然后重新装在TVAL的值开始下一次计数。
2. API
API | 函数定义 |
---|---|
Gpt_GetVersionInfo | 返回GPT驱动模块的版本信息 |
Gpt_Init | 初始化GPT驱动模块 |
Gpt_DeInit | 将GPT驱动模块回复至默认状态 |
Gpt_GetTimeElapsed | 返回已计时的时间 |
Gpt_GetTimeRemaining | 返回距离目标时间的剩余时间 |
Gpt_StartTimer | 打开GPT通道 |
Gpt_StopTimer | 关闭GPT通道 |
Gpt_EnableNotification | 使能事件通知 |
Gpt_DisableNotification | 关闭事件通知 |
Gpt_SetMode | 设置GPT驱动模块运行模式 |
Gpt_DisableWakeup | 关闭唤醒 |
Gpt_EnableWakeup | 打开唤醒 |
Gpt_CheckWakeup | 检查GPT通道是否为唤醒源 |
3. 配置介绍
3.1 General
3.1.1 GptConfigurationOfOptApiServices
使能API
3.2 GptChannelConfiguration
3.2.1 General
GptHwChannel:
通道选择
GptChannelMode:
模式选择(单次 / 连续),在触发中断的时候如果设置的为单次模式,则停止定时器
/*Stop the timer for one-shot mode*/
if (GPT_CH_MODE_ONESHOT == (*(Gpt_pConfig->Gpt_pChannelConfig))[channel].Gpt_eChannelMode)
{
/*Stop channel*/
Gpt_Ipw_StopTimer(&((*(Gpt_pConfig->Gpt_pChannelConfig))[channel].Gpt_HwChannelConfig));
/* Change the channel status to expired */
Gpt_aChannelInfo[channel].eChannelStatus = GPT_STATUS_EXPIRED;
}
GptChannelTickFrequency:
频率(配置完GptChannelClkSrcRef后点击自动计算即可)
GptChannelClkSrcRef:
时钟参考点
GptNotification:
定时回调(用户自定义,定时中断触发后执行的回调函数)
#if (GPT_ENABLE_DISABLE_NOTIFICATION_API == STD_ON)
if ((GPT_MODE_NORMAL == Gpt_eMode) && ((boolean)TRUE == Gpt_aChannelInfo[channel].bNotificationEnabled))
{
(*(Gpt_pConfig->Gpt_pChannelConfig))[channel].Gpt_pfNotification();
}
#endif
3.3 GptHwConfiguration
硬件中断使能
3.4 GptClockReferencePoint
时钟参考点关联
参考资料:
S32K-RM.pdf - NXP
AUTOSAR_MCAL_GPT_UM[1].pdf - NXP