MSP430F5529输入捕获/输出比较
输入捕获
暂未编写
输出比较
配置方法和原理
当TAxCCTLn中CAP位为0时,此路定时器被选择为比较模式。比较模式用于在特定时间间隔生成PWM输出信号或中断。每个捕获/比较块包含一个输出单元。输出单元用于产生输出信号,如PWM信号(就是输出pwm的io口)。
每个输出单元有八种工作模式,它们根据EQU0和EQUn信号生成信号,EQU0,EQU1/EQU2 就是比较器本体。
当TAR 的值大于等于TACCR0中的数值时,EQU0=1;
当TAR 的值等于相应的TACCR1或TACCR2的值时,EQU1=1或 EQU2=1。
这八种模式通过OUTMODx来选择。OUTMOD位位于TAxCCTL寄存器中。
用图例来解释八种工作模式:
在向上计数模式条件下
当定时器计数到TAxCCRn值并从TAxCCR0重新归零时,OUTn信号发生变化,具体取决于输出模式。
另外要注意,当前图例是列出的一个情况,在启用不同计数模式的情况下,各种输出模式也是不一样的,一定要以对应的计数模式为准!
其他配置与前文定时器配置相同,不再重复叙述。
输出比较开启之后,寄存器TAxCCRn存数含义变为电平翻转标准。
寄存器介绍
定时器输入捕获/输出比较控制寄存器 TAxCCTLn (TimeAx Capture/Compare Control Register)
项目 | 功能 |
---|---|
CAP | 选择捕获/比较模式 |
OUTMOD | 选择输出模式 |
示例代码
#include "msp430.h"
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P1DIR |= BIT2;
P1SEL |=BIT2;
TA0CCR0|=30000;
TA0CCTL1|= OUTMOD_6;
TA0CCR1|=15000;
TA0CTL = TASSEL_2 + MC_1 + TACLR;
__bis_SR_register(LPM0_bits);
__no_operation();
}
实验现象:在P1.2将会输出占空比为50%的pwm波