TI中文支持网
TI专业的中文技术问题搜集分享网站

PWM事件每两个触发一次,如果不及时清中断,那么事件ETPS[INTCNT]会怎样影响,仿真进中断,外设计时是否继续进行

我使用PWM模拟不归堆码,进行相位控制,设置中断每两个事件触发一次,因为应用的要求,没有开中断,用了查询法。然后关PWM时,为了时序上不出问题,只是把各个触发事件都设置为输出清零。当我再次开启时,却发现PWM在开启的第一次,总是第一个事件触发完后,第二个事件就触发了。

开启时的代码如下:

EPwm1Regs.ETCLR.bit.INT = 1;
for(i=0;i<TR1;i++)
{
while(!EPwm1Regs.ETFLG.bit.INT);
EPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR;
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.PRD = AQ_CLEAR;
EPwm1Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm1Regs.ETCLR.bit.INT = 1;
}

我是想先清除下中断,就可清除计时器,然后按理来讲应该过两个事件才触发,后续的波形也可以观察是两个事件触发一次,但是为什么起始时就是只间隔了一个事件。

另外也想问一下仿真进中断时,外设的计时会怎样,外设会不会继续工作

Soldier 76:

你好,我也遇到了类似的问题,并且没有找到答案,手册里写,重写ETPS[INTPRD]这个周期可以清空事件计数ETPS[INTCNT],事实上没有清空,我也不知道什么原因,在英文论坛提问也没人回复出来。

我问题是这样,我也是配置事件一次触发,但是我没有开ET中断,我是使用的时候准备清除掉标志位,还有事件计数ETPS[INTCNT],然后开中断,然而我发现在使能中断后会立刻进入,原因是前面的事件计数ETPS[INTCNT]没有清空,很头大,但是手册里说重写可以清空,

赞(0)
未经允许不得转载:TI中文支持网 » PWM事件每两个触发一次,如果不及时清中断,那么事件ETPS[INTCNT]会怎样影响,仿真进中断,外设计时是否继续进行
分享到: 更多 (0)