一、PIT模块驱动
使用官方S32DS自动生成PIT定时器模块驱动
1、添加PIT组件
2、配置PIT组件
【1】相关配置使用新建组件时的默认配置;
【2】选择定时器PIT0;
【3】选用定时器PIT0的CH0;
【4】自定义的中断函数,后续将被中断管理组件IntCtrl_Ip统一进行回调触发;
【5】PIT_IP_CH_MODE_CONTINUOUS:定时器超时后重新开始新一轮的定时器计时;
【6】开启指定使用的定时器:PIT0的timer0;
3、添加IntCtrl_Ip组件
涉及到中断回调函数,需要用到IntCtrl_Ip组件;
4、配置IntCtrl_Ip组件
【1】相关配置使用新建组件时的默认配置;
【2】中断向量号;
【3】使能中断;
【4】设置中断优先级;
【5】需要同官方RTD的ISR(___)内容相同,故上图的中断回调函数填入PIT_0_ISR;
后续PIT_0_ISR中会调用 配置PIT组件 时的自定义回调函数PIT0_IRQn_ISR;
二、API函数接口
1、初始化PIT模块
/* Init PIT */
Pit_Ip_Init(instance, &PIT_0_InitConfig_PB);
2、初始化CH_x channel
/* Initialize the corresponding channel */
Pit_Ip_InitChannel(instance, &PIT_0_ChannelConfig_PB[0]);
3、设置定时器计时数值,开启定时器
/* Turn on timer PIT0 */
Pit_Ip_StartChannel(instance, channel, countValue);
4、开启中断,设置中断回调函数及中断优先级
/* Enable the interruption of the corresponding channel */
Pit_Ip_EnableChannelInterrupt(instance, channel);
/* Init NVIC */
IntCtrl_Ip_InstallHandler(PIT0_IRQn, PIT_0_ISR , NULL_PTR);
IntCtrl_Ip_EnableIrq(PIT0_IRQn);
5、自定义中断回调函数
/**
* @name PIT0_IRQn_ISR
* @param void
* @retval void
* @brief PIT0 CallBack Handler
*
*/
void PIT0_IRQn_ISR(void)
{
}
三、函数调用
待定,,,,,,