您好,我在HVACI_Sensorless中看到:
(*ePWM[ch1]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC1)+ v.HalfPerMax;
(*ePWM[ch2]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC2)+ v.HalfPerMax;
(*ePWM[ch3]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC3)+ v.HalfPerMax;
当我将(*ePWM[ch1]).CMPA.half.CMPA =0时,在示波器中我看到PWM1A一直为低,PWM1B一直为高
当我将(*ePWM[ch1]).CMPA.half.CMPA =v.PeriodMax+1时,我发现PWM1A一直为高,PWM1B一直为低
请问:1、当(*ePWM[ch1]).CMPA.half.CMPA =0时,在0处不是要产生触发吗?为什么一直是低?
在文档中我看到,当比较值大于周期值得时候,对于增减模式,CMPA>=TBPRD周期,则比较匹配时(TBCTR=TBPRD)发生触发事件。
那么当(*ePWM[ch1]).CMPA.half.CMPA =v.PeriodMax+1时,在v.PeriodMax不是也要产生触发吗?为什么一直为高?
2、请问在程序中,当比较寄存器赋完值之后,什么时候才进行比较?在下一个中断到来的时候吗?为什么?
谢谢!!!