实时中断并不复杂,简单地说,就是一个定时模块,定时溢出,产生中断。功能跟
PIT差不多,都能用于定时。 对于PIT 时钟电路每固定一段时间都必须更新一次时间信息,这个更新的责任就落到了MCU身上。对于那种比较繁重的系统而言,“进行一次更新”会耗费许多的资源。而RTI只专注于记时工作,使MCU可以空出来处理其它的工作。外部晶振时钟可以直接“驱动”RTI。
RTI定时不会很准,因为它没有经过复杂的时钟处理,经过配置之后,可以变为a2^b
倍数,因为a2^b不能是任意数整数,不能配成你想要的任何频率,所以说RTI定时不会很准,不过它用起来还是很灵活、方便的。
本例通过用MC9S12XS128MAA来做一个实时中断。
以下为本例所用到的寄存器的介绍:
RTICTL寄存器
RTDEC(十进制或二进制分频器选择位) = 1 时,为十进制分频器
= 0 时,为二进制分频器
RTR[6:0]为有效分频因子,RTR[3:0]为低4位m ,RTR[6:4]为高3位n,RTI的参考时钟是外部晶振的时钟OSCCLK,即外部物理晶振提供的时钟
当RTDEC=0时,分频系数=(m+1)*2^(n+9)
当RTDEC=1时,分频系数=(m+1)*RTR[6:4]下表对应值
RTR[6:4]=000时RTI实时中断被禁止,只要当RTR[6:4] 不全为0时,实时中断就开启
CRGINT寄存器