i.MX RT1050 PIT 的配置及使用

PIT 是 Periodic Interrupt Timer 的英文缩写。 PIT 定时器是32 位递减计数器,每次计时器达到 0 时它将生成一个触发脉冲并设置中断标志, 然后再次加载相应的启动值。 PIT 定时器常用于为其他外设提供周期信号,例如 ADC 利用 PIT 设置采样周期, DMA 可以使用 PIT 设置周期性的 DMA 传输。RT1052 的 PIT 模块是一个由四个定时器组成的定时器组,这些定时器可以独立配置使用,但是它们共享一个中断信号入口,共用计数时钟,如果对 LPC系列单片机熟悉的朋友可能会觉得这个和 MRT 定时器差不多,确实在使用上就跟 MRT 一样,不过 PIT 与 MRT 的区别在于 PIT可以设置为定时器连接模式,组成一个 64位定时器,当然这个功能可能不太用得上。

  

1.框图

如下图,参考手册当中 PIT 的框图如下:

 

  

这里的 trigger 主要用于触发其它外设,而不需要进入中断再去使用软件触发,最常用的可能就是触发 ADC 转换,也可以用于触发 DMA 传输;

框图中还标出了 Peripheral bus,这里是告诉用户读写 PIT 的寄存器是通过外围总线完成的。

 

2.时钟源

在 MCUXPresso 上打开时钟配置图,我们可以看到 PIT 的时钟源来自于PERCLK_ROOT,该时钟也是有主时钟分频而来,这里设置为 75MHz,

 

 

  1. 基本配置

在 MCUXpresso 中导出 PIT 例程,在此工程上修改:

① PIT 初始化:定义 timer_init 函数,初始化时钟源,配置分频系数,最后给到 PIT 的时钟频率为 75MHz ,然后使能 PIT 时钟,复位该模块

 

 

② 设置定时参数

使能 NVIC PIT 中断,这里根据传入参数配置对应定时器,定时单位为 1us ,计算 reload value ,使能模块中断,开启定时器

 

  

③ 中断处理

在中断中清除标志位,置位 flag,该实验只用了 channel0,如使用了其它通道可读取中断标志位来判断清除:

 

④ 主函数

初始化时钟、 LED ,然后初始化 timer,在 while(1) 中轮询标志位,翻转 LED 灯

 

编译下载后可以看到板子 LED 100ms 翻转一次状态。

 

 

参考资料:

《IMXRT1050RM》 

https://www.nxp.com.cn/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1050-crossover-mcu-with-arm-cortex-m7-core:i.MX-RT1050

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论