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.

TMS320F280049C: 请问在使能Rising Edge Delay和Falling Edge Delay后我是不是就不能对epwm的cmpa和cmpb进行独立赋值了

Part Number: TMS320F280049C
Other Parts Discussed in Thread: SYSCONFIG

在sysconfig中我是如此配置的

下面是生成的db代码

EPWM_setDeadBandDelayPolarity(myEPWM1_BASE, EPWM_DB_RED, EPWM_DB_POLARITY_ACTIVE_LOW);
EPWM_setDeadBandDelayPolarity(myEPWM1_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);
EPWM_setDeadBandDelayMode(myEPWM1_BASE, EPWM_DB_RED, true);
EPWM_setRisingEdgeDelayCountShadowLoadMode(myEPWM1_BASE, EPWM_RED_LOAD_ON_CNTR_ZERO);
EPWM_disableRisingEdgeDelayCountShadowLoadMode(myEPWM1_BASE);
EPWM_setDeadBandDelayMode(myEPWM1_BASE, EPWM_DB_FED, true);
EPWM_setFallingEdgeDelayCountShadowLoadMode(myEPWM1_BASE, EPWM_FED_LOAD_ON_CNTR_ZERO);
EPWM_disableFallingEdgeDelayCountShadowLoadMode(myEPWM1_BASE);

现在我需要完成对某个epwm的cmpa和cmpb的独立赋值

EPwm1Regs.CMPA.bit.CMPA = (uint16_t)CCRdata;
EPwm1Regs.CMPB.bit.CMPB = -(uint16_t)CCRdata;

EPwm2Regs.CMPA.bit.CMPA = -(uint16_t)CCRdata;
EPwm2Regs.CMPB.bit.CMPB = (uint16_t)CCRdata;
if(EPwm1Regs.CMPA.bit.CMPA<=0)
{
EPwm1Regs.CMPA.bit.CMPA = 0;
}
if(EPwm1Regs.CMPB.bit.CMPB<=0)
{
EPwm1Regs.CMPB.bit.CMPB = 0;
}
if(EPwm2Regs.CMPA.bit.CMPA<=0)
{
EPwm2Regs.CMPA.bit.CMPA = 0;
}
if(EPwm2Regs.CMPB.bit.CMPB<=0)
{
EPwm2Regs.CMPB.bit.CMPB = 0;
}

连接上逻辑分析仪后发现并未对cmpb进行独立赋值

cmpb跟随我的cmpa的赋值了