您的位置 首页 胎压OE替换件

Freescale MC9S08单片机芯定时器2

Freescale MC9S08单片机芯定时器2

16位的自由运行计数器在单片机复位结束后从$0000开始连续计数。当达到最大值$FFFF时,翻转到$0000,同时将状态寄存器的溢出位TOF置1,然后重新开始计数。在单片机正常工作时,这个计数器会自动计数,但程序也可以停止或者清除其计数。计数器的计数频率是由系统的内部总线频率和计数分频因子来决定的。使用分频因子可以降低计数器的

计数时钟频率,扩大16位定时器的计数时间间隔。例如总线频率为2MHz,分频因子为32,那么计数器每16μs计数一次。如果定时器是自由运行溢出,那么每隔1.048 s将产生一次定时器溢出。如果允许定时器溢出中断,将会得到一次定时器的溢出中断服务。

如果使用预置计数,则可以得到更精确和便于计算的溢出中断。预置计数寄存器是一个16位寄存器,程序向这个寄存器写入一个确定的数值,则计数器每进行一次计数都会将计数与这个寄存器的值进行比较。如果相同,就产生溢出,计数器翻转到0并重新开始计数。也就是说,此时自由运行计数器并没有计数到$FFFF就产生溢出并重新计数。

预置计数寄存器可以随时进行更改,以得到不同时间间隔的定时器溢出间隔。这里4 MHz晶振且不使用锁频环(2MHz总线)时钟为例,分频因子为32。如果预置计数寄存器设置为$F424(62 500),就可以得到1 s间隔的定时器溢出,这对于时间计算就非常方便。

溢出标志和分频因子等的设定由定时器状态和控制寄存器TPMxSC决定,该寄存器的各位名称和作用如下表8-1所示。

Freescale MC9S08单片机芯定时器2 胎压OE替换件 第1张

1)TOF——定时器溢出标志位

该位用来标志定时器的溢出,当定时器的计数达到$FFFF(自由计数运行状态)或预置计数器的值时,定时器的计数将清零,同时该位置1.读取定时器状态和控制寄存器并向该位写入0,可以清除该标志位。

该位虽然是可读/写的,但由于该位只是状态位,向该位写入1的操作仅仅完成清除该标志位的作用,没有任何实际意义。另外需要注意,如果清除该标志位前又发生了定时器溢出,那么这一次清零将无法完成。程序必须保证每一次溢出发生后,都要在下一次溢出发生之前清除该标志位。在使用溢出中断的情况下,要求在中断返回之前必须清除溢出标志位,并且该中断的处理时间在最不利的情形下也不能超过一次计数溢出时间。程序在向该位写入1进行清除后,可以再次读取该位,判断是否已经正确清零,这样就能够发现连续的定时器溢出的情况。这种情况往往是程序没能及时地处理定时器溢出事件。

注:整理自网络

 

版权所有,如未注明,均为原创,转载请注明
齐东汽车电子博客 qidongyy.com
本文标题:Freescale MC9S08单片机芯定时器2
如有疑问:请转到这里联系我
网站建设:推荐老薛主机-优质海外主机服务商

热门文章