您好!
我想使用定时器 A0的两个比较块。 TA0由32.768kHz 的外部晶振供源。 我希望第一个 PWM 信号的占空比为1/128、频率为256Hz、另一个信号的占空比为50%。 以下是我的代码:
void main (void){ TA0CTL = TASSEL_ACLK | ID_1 | MC_STOP; // PWM1 P1SEL |= BIT6; P1DIR |= BIT6; P1OUT &=~BIT6; TA0CCR1 = 1; // PWM 2引脚 P1SEL |= BIT7; P1DIR |= BIT7; P1OUT &=~BIT7; TA0CCR2 = 128; TA0R = 0; TA0CCR0 = 128; TA0CTL |= MC__UP; TA0CCTL2 = OUTMOD1 | OUTMOD0 | CCIE; TA0CCTL1 = OUTMOD2 | CCIE; }
我得到我想要的波形、但它们不会同步在一起。 PWM2切换和 PWM1复位之间存在大约50us 的延迟。 它们是否不应该同步?
从数据表中:
OUTMOD3:当定时器计数到 TAxCCRn 值时、输出被置位。 当定时器计数到 TAxCCR0值时、它被复位。
OUTMOD4: 当定时器计数到 TAxCCRn 值时、输出被切换。
在本例中、TA0CCR2等于 TA0CCR0 (128)、因此我猜两个事件会同时发生。
谢谢、
Fred