最近看了一下飞思卡尔的MC9S12XS128MAL单片机,对其定时器这一块感觉很麻烦不像STM32那样直观,可以选择多种配置方式,XS128的这三个模块功能相互有重复功能,但又各有特点。看了好多网友的观点,现将自己对这三个模块的理解总结一下。
PIT模块,与I/O口没有物理连接,核心是两个定时器装载值,我的理解就是8为的用来分频,16位的用来计数,功能就是周期定时产生中断,没有额外特殊的功能。在一个PID数字控制系统中,可以用来做控制周期T的定时。
TIM模块核心是一个16位的计数器,有8个物理I/O口,主要有三个功能:1、输入捕获,可以对通道的边沿进行检测,并保留计数器的值;2、输出比较,计数器值与设定值可以比较,对I/O产生动作 ;3、脉冲累加,对脉冲个数或电平进行计数,此功能在IOC7脚, 在PID调速系统中,可以用此功能读取编码器的脉冲数从而达到测速目的。
RTI模块,也叫实时中断,设置两个寄存器即可实现功能,一个使能,一个用来设置定时周期。此模块时钟来源为晶振时钟,没有物理I/O口。实现的功能和PIT是一样的。
我认为三个模块的共同点就是都可以定时,都可以产生定时中断。不同点是:
1:RTI模块相比PIT模块,PIT 时钟电路每固定一段时间都必须更新一次时间信息,这个更新的责任就落在MCU身上了。对于那种比较繁重的系统而言,“进行一次更新”会耗费许多的资源。RT