对于epwm1模块,首先设置1A为软件强制tz置低,之后在 main的死循环中检测到tz标志位时用aq模块软件强制1B置高,输出一组互补的波形,但1B无动作,为什么
EPwm1Regs.AQSFRC.bit.RLDCSF=3;
EPwm1Regs.AQSFRC.bit.ACTSFB=2;
EPwm1Regs.TZCTL.bit.TZA=2;
////////////////////
pwm中断中强制tz动作,实际也确实动作了
EPwm1Regs.TZFRC.bit.CBC=1;
start=1;
//////////////////
main的死循环中aq强制动作,实际无动作
if(start==1)
{
EPwm1Regs.AQSFRC.bit.OTSFB=1;
start=0;
}
Green Deng:
你好,请问你运行的时候有没有检查程序是否运行到这个语句了?运行之后寄存器的值有没有发生变化?
user6414714:
回复 Green Deng:
已经找到原因了,如果想要1A由tz控制,1B由aq软件强制动作,就要将TZCTL.bit.TZB设置为无动作,之后才能响应aq的软件强制动作。如果不写的话默认为高阻态,无法通过软件强制动作修改
Green Deng:
回复 user6414714:
非常感谢你的反馈