我在CLA的task1中操作PWM寄存器,但是遇到了以下问题:
编程方法1:EPwm2Regs.CMPA.half.CMPA=1400;
EPwm2Regs.CMPB=100;
编程方法2:int DutyA;
int DutyB;
DutyA=1400;
DutyB=100;
EPwm2Regs.CMPA.half.CMPA=DutyA;
EPwm2Regs.CMPB=DutyB;
采用编程方法1编程调试输出的波形是想要的,也是跟程序代码相符合的PWM波形。但是采用编程方法2编程调试输出的波形是不正确的。
如果在CPU的main函数中按照这两种编程方法进行编程,输出的波形是一样的,并且都是正确的,但是为什么在CLA中进行这样的编程操作输出的波形是不一样的呢?
因为我要进行PWM占空比的调制,所以DutyA和DutyB都是经过公式计算得到的值,因此CMPA和CMPB只能通过变量赋值,不知道该怎么解决这个问题?请大家帮忙分析一下,谢谢。