MSP430定时器输出PWM方波.doc
文本预览下载声明
定时器A输出方波
定时器的PWM输出8种模式
输出模式0 输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。 输出模式1 置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。 输出模式2 PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR的值等于CCR0时复位。 输出模式3 PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR的值等于CCR0时复位。 输出模式4 翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。 输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择另一种输出模式。 输出模式6 PWM翻转/置位模式:输出电平在TAR的值等于CCRx时翻转,当TAR值等于CCR0时置位。 输出模式7 PWM复位/置位模式:输出电平在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。
下图是增计数模式下的输出波形:
程序:(TA定时器输出1K的方波)
void TAPWM(void)
{
//引脚设置(暂时使用P1.2输出一路PWM)
P1SEL |= BIT2; //TA1从P1.2输出
P1DIR |= BIT2; //TA1从P1.2输出
//P2SEL |= BIT0; //TA2从P1.2输出
//P2DIR |= BIT0; //TA2从P1.2输出
TACTL |= MC_1 + TASSEL_1; //时钟源选择ACLK,增计数模式 TA设置
TACCTL1 = OUTMOD_7; //模式7 高电平PWM输出 PWM设置
//TACCTL2 = OUTMOD_7; //模式7 高电平PWM输出
TACCR0 = 33-1; //PWM总周期=32个ACLK周期 约等于1000Hz 设置PWM的周期
TACCR1 = 16; //TA1 占空比= 16/32=50% 设置占空比
//TACCR2 = 16; //TA2 占空比= 16/32=50%
}
软件改变TACCR0即可改变PWM的周期,改变TACCR1或者TACCR2即可改变占空比
显示全部