器件型号: F28M36P63C2
下面是 C28 ePWM 寄存器的写入序列:
SYSCLK = 150MHz
ConfigOutput();
EnablePWMCLOCK();
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
TBCTL.CLKDIV = 7;
TBCTL.HSPCLKDIV = 6;
TBPRD = 0xBEB;
CMPA.HALF.CMPA = 0x5F5E;
CMPB = 0x5F5E;
CMPCTL.BIT.SHDWAMODE = TB_REMEDIATE;
TBPHS.ALL = 0;
TBCTR= 0;
TBCTL.CTRMODE = TB_FREEZE;
TBCTLPHSEN = TB_DISABLE;
TBCTL.PRDLD = TB_IMMEDIATE;
TBCTL.SYNCOSEL = TB_SYNC_DISABLE;
AQCTLA.PRD = AQ_NO_ACTION;
AQCTLA.ZRO = AQ_SET;
AQCTLA.CBU = AQ_CLEAR;
AQCTLA.CBD = AQ_CLEAR;
AQCTLA.CAU = AQ_NO_ACTION;
AQCTLA.CAD = AQ_NO_ACTION;
AQSFRC = 0;
AQCSFRC = 0;
ETSEL.INTSEL = ET_CTRLU_CMPB;
ETPS.INTPRD = ET_1st;
ETSEL.BIT.INTEN = 0;
ETCLR.bit.INT = 1;
ETPS.bit.INTPSSEL = 0; //使用 ETPS 旧版第一事件预分频器
ETPS.bit.INTCNT = 0;
ETCNTINIT.BIT.INTINIT = 0;
ETCNTINITCTL.BIT.INTINITEN = 1;
ETCNTINITCTL.BIT.INTINITFRC = 1;
ETCNTINITCTL.BIT.INTINITEN = 0;
DBCTL.POLSEL = DB_ACTV_HI;
DBCTL.OUT_MODE = DB_DISABLE;
TBCTR = TBPRD;
TBCTL.CTRMODE = TB_COUNT_UP;
GPIO 不切换。
如果我只删除 TBCTL.PRDLD = TB_immediate、则从第一次启动开始一切都有效
启动后出现此类行为的可能原因是什么? 未在勘误表中找到任何内容