器件型号: TMS320F28P550SJ
当 ePWM 配置为向上计数模式并且启用全局加载时。 为了确保同时加载所有寄存器、我们需要检查 TBCTR 是否接近 TBPRD、如果是、将会等待、否则将更新所有寄存器。
但这里的 EPwm1Regs.TBPRD 是影子寄存器、而不是活动寄存器。 因此使用它进行检查是不正确的。 有时、会出现意外的 PWM 波形。
那么我可以知道有效周期了吗? 或者我是否可以知道影子寄存器是否已加载?
或者是否有任何其他解决方案来替代此检查?
在本 LLC 工程中、ISR 为 100k、LLC MOSFET fre 约为 48K-200k。
while (EPwm1Regs.TBCTR >=(EPwm1Regs.TBPRD - 60))
{
;
}
EPwm1Regs.TBPRD = PWM_PERIOD;
EPwm1Regs.TBPRDHR =(uint16_t) hres_pwm_period;
EPwm1Regs.CMPA.all = pwmH_on_time;
EPwm1Regs.CMPB.all = pwmH_off_time;
EPwm4Regs.CMPA.all = pwml_on_time;
EPwm4Regs.CMPB.all = pwml_off_time;
EPwm2Regs.CMPA.all = synL_ON_TIME;
EPwm2Regs.CMPB.all = synL_OFF_TIME;
EPwm3Regs.CMPA.all = synH_ON_TIME;
EPwm3Regs.CMPB.all = synH_off_time;
debug12 = EPwm1Regs.CMPCTL.all;
EPwm1Regs.GLDCTL2.bit.OSHTLD = 1;



