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

怎么在定时器中断程序中把中断关上

如题,我需要在打开定时器5S后进入中断函数:
void interrupt LEDINT() //中断响应函数  大致是150000000为5秒左右 datasheet 30MHZ
{
    //CSR&= 0xfffe;                // 关中断 GIE=0
    asm(" NOP 1 ");
    ICR = 0xFFF0;
    ISR=0x0;
    printf("\nok");
    TIMER0_INTCLSTAT=0x3;   // 清除定时器中断标志
    asm(" NOP 1 ");
    PWM_1_stop();
    PWM_2_stop();
    PWM_3_stop();
    PWM_4_stop();
    PWM_5_stop();
    CSR&= 0xfffe;
}
但是我在最后加上一句关闭全局中断,还是会不断地进入中断函数,确定别的地方并没有再次打开,请问怎么办???

Shine:

进入中断子程序后GIE会自动关闭,退出中断子程序时又会restore CSR,所以即使您在中断子程序里disable了GIE,最后退出子程序时又会restore CSR把GIE使能上。如果要不进入中断函数,那就要把IER寄存器disable掉。

user5789102:

回复 Shine:

多谢回复,我试一下

赞(0)
未经允许不得转载:TI中文支持网 » 怎么在定时器中断程序中把中断关上
分享到: 更多 (0)