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 关、 开中断

Other Parts Discussed in Thread: TMS320F28335

为保证时序不被打断,我需要关中断,操作完成后,再开中断

TMS320F28335 在中断初始化完成以后,如何关中断,然后再开中断

  • xiaoliang,

    // Disable CPU interrupts   

    DINT;

     // Enable Global interrupt INTM

    EINT; 

    使用全局中断 开通关断 即可。

    Eric

  • Eric:

           请问

    // Disable CPU interrupts   

    DINT;

     // Enable Global interrupt INTM

    EINT; 

    这个会不会影响DSP自己的中断啊,如会不会把已经置位的中断标志位清零?又会不会使得在这个过程中,可能发生的中断的标志位不能置位?

  • xiaoliang,

    我认为DINT和EINT并不会清除PIE或外设中断的相关标志位,但是会阻断它们把中断传给CPU。我们来举一个例子

    如果是使用DINT关断CPU中断,这是PWM1中断产生了,相应的PIE级别PieCtrlRegs.PIEIFR3.bit.INTx1 =1,即PIE级别标志位置1,但是由于没能进入中断服务函数,所以PWM1中断标志位不能清零,PIE 第3组不能用PIEACK清除标志位。

    所以PWM1的标志位会一直为1,知道CPU去清除,当然,清除之前后续的PWM中断则不能产生了。同理,PIE 第3组则会被PWM1的中断一直占用,不能被同组的其他中断所用。

    直到开全局中断EINT,这些中断马上进行处理,然后后续中断也会正常工作。

    但是我认为这不会对应用有什么影响,你本来就是要关掉中断。

    Eric