请教28062 EPWM模块操作的问题

2019-03-24 10:29发布

想EPWM3A ,3B分别输出2个不同占空比的pwm波,配置差不多跟文档例子里的一样了 ,但是B口还是出来跟A口一样的波,求助    EPwm3Regs.TBPRD = 1125;                 // Switch Period Counter
    EPwm3Regs.TBPHS.half.TBPHS = 0;               // Set Phase register to zero   
    EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
    EPwm3Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Phase loading disabled
    EPwm3Regs.TBCTL.bit.PRDLD = TB_SHADOW;
    EPwm3Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;//
   EPwm3Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;      // TBCLK = SYSCLK
    EPwm3Regs.TBCTL.bit.CLKDIV = TB_DIV1;
    EPwm3Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
    EPwm3Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm3Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // load on CTR = Zero or PRD
    EPwm3Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // load on CTR = Zero or PRD
    EPwm3Regs.AQCTLA.bit.CAU = AQ_SET;            // CNT = CMP up   ->1
    EPwm3Regs.AQCTLA.bit.CAD = AQ_CLEAR;          // CNT = CMP down ->0
    EPwm3Regs.AQCTLB.bit.CAU = AQ_SET;          // CNT = CMP up   ->0
    EPwm3Regs.AQCTLB.bit.CAD = AQ_CLEAR;             // CNT = CMP down ->1

EPwm3Regs.CMPA.half.CMPA =500;
EPwm3Regs.CMPB= 200;

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
jishuaihu
2019-03-24 14:47
< EPwm3Regs.AQCTLA.bit.CAU = AQ_SET;            // CNT = CMP up   ->1
EPwm3Regs.AQCTLA.bit.CAD = AQ_CLEAR;          // CNT = CMP down ->0
EPwm3Regs.AQCTLB.bit.CAU = AQ_SET;          // CNT = CMP up   ->0
EPwm3Regs.AQCTLB.bit.CAD = AQ_CLEAR;             // CNT = CMP down ->1

问题好像在这儿吧,你AQCTLB寄存器配置的和AQCTLA一样出来的波形肯定一样了。AQCTL寄存器里应该有CBU和CBD控制位吧。现在手里没有数据手册。你自己看一下

一周热门 更多>

相关问题

    相关文章