This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335 EPWM 异常

大家好!

我在用ePWM的时候碰到了一个奇怪的现象。如下图所示,AQCTLA.bit.CAD设置为2(置1),但是途中红色圈内的PWM脉冲和预想的不一样(应该是比较小的一个脉冲),这种情况会周期性的出现。请问下可能是什么原因呢?谢谢

  • PWM引脚有外接其他电路吗?会不会是电路中的其他原件充放电造成的。
  • 你好,应该不是其他元件充放电造成的,因为我用别的代码跑了是没问题的
  • “AQCTLA.bit.CAD设置为2”的话确定了上升沿的位置,那这个下降沿的长度应该是跟你的AQ_CLEAR的值有关的,即跟你设置的下降沿的位置有关。
  • 下降沿是由 AQCTLA.bit.CAU=AQ_CLEAR 设置的。后来我甚至加入了AQCTLA.bit.PRD=AQ_CLEAR,但是仍然会存在图中的情况

  • 我好像发现问题了。

    下图一个是计算得到的占空比,一个是给CMPA赋值之后读取的值。不知道为什么,CMPA过段时间就会得到一个很大的值,而且一般在占空比从0到有值或者从有值到0处发生。

    占空比给零由下实现:

    int zero = 0;

    p->Duty2A = zero;

    CMPA赋值由下实现:

    EPwm3Regs.CMPA.half.CMPA = (int)(2.0 * p->PeriodMax * p->Duty2A);

    两者不在同一个函数/结构体

  • 解决了。不是0的问题,是其他占空比计算出了负值。

x 出现错误。请重试或与管理员联系。