msp430输出PWM波

MSP430单片机的定时器除了可以捕获,比较之外,还可以作为PWM波产生器直接在芯片内部联通IO口。在官方手册上就有:

Timer_B7 is a 16-bit timer/counter with seven capture/compare registers. Timer_B7 can support multiple
capture/compares, PWM outputs, and interval timing. Timer_B7 also has extensive interrupt capabilities.
Interrupts may be generated from the counter on overflow conditions and from each of the capture/compare
registers.

我想对于一些细心的朋友可能会注意到:

msp430输出PWM波msp430输出PWM波

CCR2中有一个OUT2 single,其实这个输出信号就是输出PWM波,既然Timer_A有三个捕获/比较单元CCR0,CCR1,CCR2

那么它应该就有三个输出:OUT0, OUT1,OUT2。 查找MSP430F149的芯片管脚图,可以找到

msp430输出PWM波

P1.1, P1.5,P2.7三个IO口都可以作为TA0,也就是OUT0,因此Timer_A能输出9个PWM波,三种。

Timer_A有四种模式:STOP , UP , CONTINUES, UP/DOWN,其中只有UP/DOWN模式能够通过配置产生PWM波。

事实上定时器输出信号的模式是有8种的:


msp430输出PWM波

通过OUTMODX的值就可以选择输出模式,上述文字描述太抽象,还是直接看下图:

msp430输出PWM波

Output Mode 6很容易配置成一定占空比的PWM波。方波一个周期内,高电平的周期与整个周期之比。

在模式6中,占空比=(TACCR0-TACCR1)/TACCR0