您好、Evereybody、
我尝试使用 ePWM1A 和 ePWM1B 输出。 当我使用它们时,没有任何问题。
但是、当我主动或被动它们时、会出现问题。 我试着用图片来解释。
对于 ePWM1A 和 ePWM1B、我的频率为16kHz。 但我不能将它们一起使用。 它们中只有一个可以具有输出。
在 t1:当 ePWM1A 被清零时,ePWM1B 被置位。
T2: 当 ePWM1B 被清零时、ePWM1A 被置位、但正如您在图1和图2中看到的、eachother 不相等。 2只是半个周期、但1是一个周期、并暂停...
这是我的应用程序上的问题、我无法理解? 为什么会发生这种情况?
在程序中、我在相同的位置设置和清除...
我的 PWM 初始化代码:
EPwm1Regs.TBPRD =周期; EPwm1Regs.CMPA.bit.CMPA= 100; EPwm1Regs.CMPB.bit.CMPB =周期-100; EPwm1Regs.TBPHS.bit.TBPHS = 0; EPwm1Regs.TBCTR = 0x0000; EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;//主 EPWM1A EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_IMMETERM; EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_Zero_PRD; EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_Zero_PRD; EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR; EPwm1Regs.AQCTLB.bit.CBD = AQ_SET;
