北极熊 发表于 2012-4-3 22:08:08

新手求救:为什么外部中断只能响应4-7的中断?

我正在学习按键中断,写了一个按键与led的测试程序,测试时发现一旦进入中断4-7后就只能响应4-7的中断了,而原来正常的0,1,2中断却响应不了,下面是中断4-7的中断函数:
void __irq Eint4_7_Isr(void)
{
   if(rEINTPEND&(1<<4))
   {
      Led2_On();
      Delay1();
      Led2_Off();
      rSRCPND|=1<<4;
      rINTPND|=1<<4;
      rEINTPEND|=1<<4;
   }
}
而改成:
void __irq Eint4_7_Isr(void)
{
   Led2_On();
   Delay1();
   Led2_Off();
   rSRCPND|=1<<4;
   rINTPND|=1<<4;
   if(rEINTPEND&(1<<4))
   {
      rEINTPEND|=1<<4;
   }
}
就可以正常响应了,不知道这个 if位置的改变对程序的影响在哪里。麻烦各位前辈告知一下,先谢谢了。
页: [1]
查看完整版本: 新手求救:为什么外部中断只能响应4-7的中断?