我想用28062的ePWM1事件触发ADC中断。
在调试时发现,ETSEL寄存器只有选择1(TBCTR=0)时,PWM按照给定频率触发。
当设置为TBCTR=2(TBCTR=TBPRD)或TBCTR=3(TBCTR=0或TBCTR=TBPRD)时,PWM触发周期出现抖动现象。
想请教这种情况发生的原因是什么?
EPwm1Regs.TBPRD = 2250;
EPwm1Regs.TBPHS.half.TBPHS = 0x0000;
EPwm1Regs.TBCTR = 0x0000;
EPwm1Regs.TBCTL.bit.CTRMODE = 0x2; //up-down-count mode
EPwm1Regs.TBCTL.bit.PHSEN =0x0;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0x0; //high speed time-base clock prescale 0x0= /1
EPwm1Regs.TBCTL.bit.CLKDIV = 0x0; //time base clock prescale bit TBCLK = SYSCLKOUT/(HSPCLKDIV*CLKDIV)
EPwm1Regs.CMPCTL.bit.SHDWBMODE = 0x0;
EPwm1Regs.CMPCTL.bit.LOADBMODE = 0x1;
EPwm1Regs.AQCTLB.bit.CBU = 0x2;
EPwm1Regs.AQCTLB.bit.CBD = 0x1;
EPwm1Regs.ETSEL.bit.INTSEL = 0x1;
EPwm1Regs.ETSEL.bit.INTEN = 1;
EPwm1Regs.ETPS.bit.INTPRD = 0x1;