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.

TMS320F2800157: 同时使用TIME0中断和PWM中断,PWM100us中断抖动为86us

Part Number: TMS320F2800157

TIME0中断为20K,PWM中断为10K,PWM中断在经过几个周期后,会出现周期缩短为86us,其正脉宽明显增大,触发提前,后续周期又恢复100us,但是正脉宽一直是增大后的状态

  • 脉冲是如何产生的?

  • 脉冲是在中断中通过debug口产生的

    背景是20K的中断和10K的中断,10K允许20K中断打断;

    此外,TIME0开始计数函数和使能PWM外设时钟函数是同时进行的;

    EPWM中断是通过事件触发子模块在ZREO生成的,运行期间没有更改PWM周期
    当都使用pwm来触发这两个中断的时候,如用PWM1触发20k中断,用PWM2触发10K中断,不会出现10K中断周期突变的情况;
    当使用TIME0触发20K中断,PWM2触发10K中断的时候,会出现10k中断周期突变的情况
    两种情况下,只有20K中断的触发源不同,其余条件均相同

  • 方便上传一下相关的配置代码吗?

  • 没有特殊的代码,你可以使用例程配置一下,使用定时器产生20K中断,使用EPWM差生10K中断,会出现10K中断周期突然缩减的问题,通过波形可以看出20k的中断触发正常,而10K的中断周期缩减为86us后又恢复100us的周期,但是中断执行却提前了

  • 脉冲是在中断中通过debug口产生的

    这个是说脉冲是在中断中通过翻转IO口产生的吗?还是其它的方式?请详细说明一下。

    如果是通过翻转IO,分别是在中断中的什么时机翻转的呢?

    因为并不是很理解正脉宽变宽为什么表示中断执行的提前。方便的话请详细说明一下,我需要明确的知道你debug的方式。谢谢

    其正脉宽明显增大,触发提前,
    但是中断执行却提前了