Freescale MC9S08单片机芯定时器3
2)TOIE——定时器溢出中断允许位
该位用来标志是否允许定时器溢出中断。该位为1,表示允许溢出中断,当发生溢出时,系统会执行溢出中断处理程序;该位为0,表示不允许溢出中断。该位是可读/写的,读取的数值就是其实际值。
3)CPWMS——PWM中心对齐控制位
该位控制PWM操作模式。该位为1,则所有的定时器通道都工作在中心对齐的脉宽调制模式下;该位为0,则每个定时器通道分别由各自的控制寄存器控制作为输入捕捉、输出比较或者边界对齐的脉宽调制。
4)CLKSB:CLKSA——时钟源选择控制位
表8-2列举了CLKSB:CLKSA的值与时钟源选择的关系。
5)PS2:PS1:PS0——定时器分频因子选择控制位
这3位共同设定定时器的分频因子。3位的不同组合有8种可能。表8-3列举了PS2:PS1:PS0的值与分频因子的关系。
定时器的状态和控制寄存器的各位都有不同的作用,在设定时可以只对需要更改的某一位进行读/写,也可以对整个寄存器进行读/写。在系统初始化时,一般按下述步骤进行状态和控制寄存器的设置:
根据需要确定各位的值;
由各位的值得到整个寄存器的值;
将这个值写入控制和状态寄存器就可以完成各位的设定。
1.3 输入捕捉
输入捕捉是Freescale单片机定时器的基本功能,该功能用来检测外部的事件和输入信号。当外部事件发生或信号发生变化时,在指定的输入捕捉引脚上发生一个指定的沿跳变(可以指定该跳变是上升沿还是下降沿)。定时器捕捉到特定的沿跳变后,把自由运行计数器当前的值锁存到输入捕捉寄存器。如果在输入捕捉控制寄存器中设定允许输入捕捉中断,系统会产生一次输入捕捉中断,利用中断处理程序可以得到事件发生的时刻或信号发生变化的时刻。
通过记录输入信号连续的沿跳变,就可以用软件算出输入信号的周期和脉宽。例如,为了测量周期,只要捕捉到两个相邻的上升或下降沿的时间,两者相减就可以得到周期。为了测量脉宽,就要记录相邻的两个不同极性的沿变化的时间。如果测量的脉宽值小于定时器的溢出周期,则只要将两次的值直接相减(看成无符号数)即可。如果测量的脉宽值大于定时器的溢出周期,那么在两次输入捕捉中断之间就会发生定时器计数的溢出翻转,这时直接将两个数相减没有意义,需要考虑定时器的溢出次数。
输入捕捉的另一个用途是配合输出比较来延时。例如,需要在一个外部事件发生一定的时间后,单片机产生一个输出信号来控制某个操作。这可以利用输入捕捉来记录外部事件发生的时刻,把这个事件加上一定的延时值送到输出比较寄存器,并允许输出比较功能,即可达到上述目的。
注:整理自网络