1、定时器的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时置位。
下图是增计数模式下的输出波形:
2、程序:(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即可改变占空比
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务