DSP使用定时器对PWM编码输出,中断卡顿

通过PWM输出相位的转换实现码元1与0的改变,单码元脉宽为10个PWM波(频率600K),中断每600K进入一次定时器。中断服务函数对PWM输出进行相位控制,判断条件太多导致卡顿,输出异常。尝试过宏定义减少函数计算量,减少开关定时器的使能失能,均未达到目的;因为是累加判断无法使用switch,定时器里面也只有5个if判断

你可以把它的中断优先级设置为最高

将大量的if判断改换成switch或者跳转表

if判定改switch跳转

整理一下if判断,分层几个不同的层次,这样就不会每次判断所有的条件,提升一下效率

你可以把它的中断优先级设置为最高;整理一下if判断,分层几个不同的层次,这样就不会每次判断所有的条件,提升一下效率