Freescale MC9S08单片机芯定时器4
1.4 输出比较
输出比较模块也是单片机定时器的基本组成部分。该模块用来在程序规定的时刻输出需要的电平,实现对外部电路的控制。输出比较寄存器的值与自由运行计数器的值每隔4个总线周期比较傲一次。当两个值相等时,输出比较模块置1定时器通道的状态和控制寄存器的CHnF位,并且在该通道的引脚上输出预先规定的电平。如果输出比较中断允许,则还会产生一个硬件的定时中断。
对比使用延时得到所需输出电平的方法,使用输出比较的优势在于可以得到非常精确的输出时间间隔。硬件的比较功能不受其他中断的影响,而且对用户程序没有额外的负担。
输出比较最简单和最常用的功能就是产生一定间隔的脉冲。典型的应用实例就是实现软件的串行通信。用输入捕捉作为数据输入,而用输出比较作为数据输出。首先根据通信的波特率向输出比较寄存器写入延时的值,然后根据待传的数据位确定有效输出电平的高低。在输出比较中断处理例程中,重新更改输出比较寄存器的值,并根据下一位数据改写有效输出电平控制位。
1.5 脉宽调制输出
脉宽调制波是一种可以使用程序来控制波形占空比、周期、相位的波形,它在三相电机的驱动及D/A变换等场合有普遍的应用。单片机的定时模块也提供了脉宽调制的机制。
脉宽调制的主要特征是可以调节输出信号的周期以及每个周期中高电平部分的比例(称为“占空比”)。脉宽调制功能的实现需要结合定时器模块的预置溢出功能和输出比较功能。
定时器的每一个通道都可以设置为在溢出时自动翻转电平。预置计数寄存器的值将决定脉宽调制波的周期。当自由运行计数器的计数达到预置计数器的值时,该通道的输出将自动翻转。因此两次溢出之间的时间就是脉宽调制波的周期。
每一个通道的输出比较寄存器的值将决定脉宽调制波的占空比。因为在发生输出比较时,输出电平将根据每一个通道的控制状态寄存器的ELSnA和ELSnB位的设置而发生改变。这样在一次时钟溢出的周期内输出电平将发生两次翻转,而从发生时钟溢出到发生输出比较之间的时间就是脉宽调制波的占空比。
这种基本的脉宽调制方式也称为边界对齐的脉宽调制模式(Edge Aligned PWM Mode),其波形如图8-2所示。其特点是当某个定时器发生溢出时,这个定时器产生的所有脉宽调制的输出信号都会发生翻转,此时有多个输出门发生导通/截止的转换,产生较大的电流变化。而使用中心对齐的脉宽调制模式(Center Aligned PWM Mode)可以避免这个问题。中心对齐的脉宽调制模式波形如图8-3所示。
注:整理自网络