This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;
EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO; //
EPwm1Regs.ETSEL.bit.INTEN = 0; // Enable INT
EPwm1Regs.ETPS.bit.INTPRD = ET_1ST; //
PWM1A,1B最大的占空比为50%。
在占空比比较小的情况下,要关掉PWM1A,2A的,使其占空比为零,我采取了两种方法。
在EPWM1中断里设置和更新比较值
1.EPwm1Regs.CMPA.half.CMPA = 0;
结果是PW1A占空比变成了100%,不能为0,且还占空比变成了100%。
2.我使用
EPwm1Regs.AQCSFRC.all = 0x01; //PWM1A force low,00 01
EPwm2Regs.AQCSFRC.all = 0x01; //PWM2A force low,00 01
就是在关断的上一个周期,PMW1A变成了固定的1,无论是什么值,都是最小的高速时钟单位1