MSP430 TimerA OutPut Unint(原创)
0赞公司组织去烧烤,九溪十八滩,好清澈的水,好多茶树,当然少不了好多人。吃饱喝足开始玩纸牌,每人三张牌比较大小的那种,总得有个赢头,赌资每人十颗花生。除了需要动用些许的欺诈伎俩,主要是伺机而动了,在没有找到机会的时候还是收敛点为好。
昨天好晚了实在不想写了,今晚补上最后一点,关于定时器A的输出单元吧。在定时器A的每一个捕获/比较模块都包含了一个输出单元。这个输出单元主要用来配合比较、捕获模式来产生想PWM波这种输出信号。依据EQU0和EQUx信号,每个输出单元都有8种操作模式,而这些模式的选择是由控制位OUTMODx位定义的。
|
OUTMODx |
模式 |
说明 |
|
000 |
输出 |
输出信号OUTx由OUTx位定义。当OUTx位更新时,OUTx信号立刻更新 |
|
001 |
置位 |
当定时器计数到TACCRx值时,输出置位,并保持置位直到定时器复位或选择了另一种输出模式 |
|
010 |
翻转/复位 |
当定时器计数到TACCRx值时,输出翻转。当定时器计数到TACCR0值时,输出复位 |
|
011 |
置位/复位 |
当定时器计数到TACCRx值时,输出置位。当定时器计数到TACCR0值时,输出复位 |
|
100 |
翻转 |
当定时器计数到TACCRx值时,输出翻转。输出信号的周期是定时器周期的两倍 |
|
101 |
复位 |
当定时器计数到TACCRx值时,输出复位。并保持复位直到选择了另一个输出模式 |
|
110 |
翻转/置位 |
当定时器计数到TACCRx值时,输出翻转。当定时器计数到TACCR0值时,输出置位 |
|
111 |
复位/置位 |
当定时器计数到TACCRx值时,输出复位。当定时器计数到TACCR0值时,输出置位 |
对于所有模式来说,OUTx信号随着定时器时钟的上升沿而改变。输出模式2,3,6和7对输出单元0无效,因为这些模式下EQUx=EQU0。
下面分别给出定时器处于增模式、连续模式和增减模式下,各种输出模式的时序图。
定时器处于增模式。
此模式下,当定时器计数到TACCRx的值或者从TACCR0到0时,OUTx信号根据输出模式改变。

定时器工作在连续模式下,输出信号OUTx在当定时器计数到TACCRx和TACCR0值时,根据输出模式而变动。

在增/减模式下,输出信号在定时器的值在任一计数方向上出现了等于TACCRx和TACCR0的值时,根据选择的输出模式变动。

那么当在不同的输出模式之间切换时候,我们需要注意,除非是切换到模式0,不然OUTMODx的一个位必须在过度时保持置位,不然的话会因为或非门解码输出模式0而导致出现脉冲干扰。为了避免这种情况的发生,我们可以模式7作为过度状态来实现输出模式间的安全切换。
