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

DSP28335如何关闭和开启epwm_isr中断?

请假大家DSP28335的问题,程序里能不能暂时关闭epwm_isr中断,待执行完一些语句后重新开启epwm_isr中断?有相应的程序吗?试了很多方法都不行,TI说明里所说的要清除PIEIER寄存器的位方法,有相应的例程吗?谢谢

方法

1:利用PIEIERx寄存器禁止中断并保护相应的PIEIFRx标志位。  当保护相应的PIEIFRx标志位,并清除PIEIERx中的位时,需要执行以下步骤:  ①禁止全局中断(INTM=1)。  ②清除PIEIERx.y位,禁止特定外设的中断,可以禁止一个或同一组中的多个中断。  ③等待5个周期,这个延时是确保向CPU发出的任何中断都能在CPU IFR寄存器中被标记。  ④清除外设中断组中的CPU IFRx位,这是在CPU IFR寄存器中的安全操作。  ⑤清除外设中断组中的PIEACKx位。  ⑥使能全局中断(INTM=0)。

Seven Han:

你可以看下帖子:

http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/100349.aspx?keyMatch=28335%20pwm%20%E5%AF%84%E5%AD%98%E5%99%A8%E6%8E%A7%E5%88%B6&tisearch=Search-CN-Support

请假大家DSP28335的问题,程序里能不能暂时关闭epwm_isr中断,待执行完一些语句后重新开启epwm_isr中断?有相应的程序吗?试了很多方法都不行,TI说明里所说的要清除PIEIER寄存器的位方法,有相应的例程吗?谢谢

方法

1:利用PIEIERx寄存器禁止中断并保护相应的PIEIFRx标志位。  当保护相应的PIEIFRx标志位,并清除PIEIERx中的位时,需要执行以下步骤:  ①禁止全局中断(INTM=1)。  ②清除PIEIERx.y位,禁止特定外设的中断,可以禁止一个或同一组中的多个中断。  ③等待5个周期,这个延时是确保向CPU发出的任何中断都能在CPU IFR寄存器中被标记。  ④清除外设中断组中的CPU IFRx位,这是在CPU IFR寄存器中的安全操作。  ⑤清除外设中断组中的PIEACKx位。  ⑥使能全局中断(INTM=0)。

ChuShan Zhang:

回复 Seven Han:

DSP28335如何关闭和开启epwm_isr中断?我的程序满足一定条件后,想中途关闭EPWM1的INT中断,不知道如何实现,是否有程序可以参考?谢谢

赞(0)
未经允许不得转载:TI中文支持网 » DSP28335如何关闭和开启epwm_isr中断?
分享到: 更多 (0)