问题:
pwm输出,偶发的少输出一次高电平。问题出现频率一般为10分钟-1小时一次。问题不固定时间出现。
配置:
MSP4305435A芯片使用TA1.1输出PWM。
采用定时器输出模式的UP模式,输出3:set/reset,即CCR0为周期、CCR1为低电平时长。指定P8.6复用为PWM输出。
开启了ccr0计数中断。
pwm周期为10ms。低电平时长每隔1s在2.64ms和4.57ms之间切换(在CCR0中断中切换)。

图片说明:
正常波形的图片,包含若干波形,周期为10ms,低电平时常从4.57ms变换到2.64ms。
异常波形的图片,“波1”和“波3”正常。“波2”周期为20ms,其实应该是有个波少输出了一次高电平,导致低电平很长。


以下是CCR0中断,用于更新ccr1值,也就是占空比。
void TIMER_A1_0_ISR (void)
{
//每10ms进入
cnt++;
if (cnt == 99)
{
cnt = 0;
if (pwm == 1081) // 低电平2.64ms
{
pwm = 1873;
Timer_A_setCompareValue(TIMER_A1_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_1, 1081);
}
else // 低电平4.57ms
{
pwm = 1081;
Timer_A_setCompareValue(TIMER_A1_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_1, 1873);
}
}
}