(*ePWM[ch1]).AQCSFRC.bit.CSFA = 0; /* Forcing disabledd on output A of EPWM1 */\
(*ePWM[ch1]).AQCTLA.bit.CAU = 2; /* Set high when CTR = CMPA on UP-count */\
(*ePWM[ch1]).AQCTLA.bit.CAD = 1; /* Set low when CTR = Zero */\
这些指令执行完到IO口发出PWM为什么总有差不多一个PWM周期的延迟?
Emma Wang:
请问您是通过什么方式测出IO口发出PWM与指令执行之间的延迟的?
PWM模块的计数器从0开始计时,然后到了上升阶段的CMPA开始动作置1,到了下降阶段的0置零,这样的话,会有小于半个周期的延迟。
(*ePWM[ch1]).AQCSFRC.bit.CSFA = 0; /* Forcing disabledd on output A of EPWM1 */\
(*ePWM[ch1]).AQCTLA.bit.CAU = 2; /* Set high when CTR = CMPA on UP-count */\
(*ePWM[ch1]).AQCTLA.bit.CAD = 1; /* Set low when CTR = Zero */\
这些指令执行完到IO口发出PWM为什么总有差不多一个PWM周期的延迟?
Hong Ji:
回复 Emma Wang:
是的,理论上应该是小于半个周期的延迟。我在PWM命令发出前在IO口输出端加了一个测试信号,输出的PWM可以直接在示波器测出,两个信号会有一个或一个半周期的差别