如题,我需要在打开定时器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:
多谢回复,我试一下