概述
S32K1具有丰富的Timer资源,今天,我们从最简单的LPIT开始。
LPIT: low power periodic interrupt timer.
LPIT是带多个timer通道的周期中断timer。当一个timer达到编程计数值时,对应的通道将产生pre-trigger and trigger输出信号,这些信号可以触发MCU上其它模块。各通道可以级联形成更大的定时器。取决于timer模式,当达到计数值时,通道可以重载计数或者停止。
了解更多,请访问S32K1专栏。
Timer模式
每个通道的Timer可配置为compare或者capture 模式。
比较模式:每个timer channel启动、重载和重启能够通过控制位实现,Timer可配置为从编程的起始值递减,也可从所选的触发输入、前一个通道超时递减。
捕获模式:定时器可用于执行测量,当所选触发输入断言时捕获定时器值。 定时器可以支持一次性或多次测量(如频率测量)。
Timer特征
• 每个通道含有一个32-bit计数器装载起始值,对每个外设时钟的上升沿进行减计数。
• 达到零值(通道定时器超时)后,将生成触发输出。
• 计数器启用使用定时器启用寄存器控制位、外部或内部触发器或通过先前的通道超时(使用定时器链接时)进行控制.
• 通道定时器超时后,还会设置一个中断位,告知 CPU 定时器超时。
不同运行模式
芯片指定的特征
S32K1xx含有一个LPIT模块,带4通道, Low leakage mode and Wait mode不支持。LPIT的chn0-3分别可周期触发DMAchn0-3事件。LPIT设计用于在其输入触发器处捕获小脉冲,而不考虑其时钟频率。但为了可靠的操作,这些触发器应至少间隔10个LPIT总线时钟周期。LPIT可用作替代ADC硬件触发源,通过TRGMUX实现。每个LPIT通道支持一个预触发器和一个触发器(triggers and pre-triggers)。LPIT通道基于独立计数器实现。当用作ADC触发源时,通道输出生成ADC硬件触发器和预触发器。
CVALn在运行时读取的值不可靠,如果要读取就在在ISR中读取。