Part Number:TMS320F28034
使用TMS320F28034 EPWM3A,EPWM3B产生两路独立的PWM驱动,
两路驱动的装载方式为:
EPwm3Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm3Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm3Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm3Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
然后我在程序中任意时刻赋值,如下所示
EPwm3Regs.CMPA.half.CMPA =100;
EPwm3Regs.CMPB=500;
怎样才能保证EPWM3A,EPWM3B能同时装载并更新驱动波形,
因为当程序运行完了这条指令EPwm3Regs.CMPA.half.CMPA =100;就完成装载的话,那就只更新EPWM3A,EPWM3B还是上一次的值,要等下一个装载周期才会更新。
Green Deng:
你好,我看你两个比较器都是影子模式的?那为什么会出现“只更新EPWM3A,EPWM3B还是上一次的值”的情况?
,
user4663171:
你好,如果程序运行完EPwm3Regs.CMPA.half.CMPA =100;就装载到影子寄存器了,并且这时候就产生更新,后面这句还没来得及运行,那不是就更新了A寄存器的值,B寄存器就没有更新?
,
Green Deng:
装载到影子寄存器之后就是会到下一个周期才更新CMPA的值,也就是CMPA、CMPB都是在下个周期才会更新的。
,
user4663171:
好的,谢谢