打印
[ZLG-ARM]

请问一下关于中断的问题

[复制链接]
1211|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
肖宾|  楼主 | 2007-3-31 00:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ic, vi, se, BLE, tc

各位大虾,小弟是个新手,请问一下关于中断的问题。我用的LPC2138
  我用了一个外部中断,一个RTC年增量中断,只要我一初始化结束就是立刻进入到中断服务程序    ,就是一直在响应中断。感觉好奇怪啊。
  void IRQSet (void)
    {VICIntSelect   = 0x00000000;
     
     EXTMODE        = 0x00;
     EXTPOLAR       = 0x00;
     VICVectCntl0   = 0x20 |14;
     VICVectAddr0   = (uint32)IRQ_Eint0;
     EXTINT         = 0x01;
     VICIntEnable  |= 1 << 14;

     VICVectCntl2   = 0x20 | 13;
     VICVectAddr2   = (uint32)RTC_Int;
     VICIntEnable  |= (1 << 13);    
     ILR            = 0x01;    
    }
int main(void)
{ PINSEL0 =0x80050000;         //初始化管脚
  PINSEL1 =0x054802A9;
  PINSEL2 =0x00000004;
  IO0DIR =0x00001CFF;
  IO1DIR =0x03FF0000;
 
 IRQSet() ;      
 IRQEnable();
 while(1)
  {...
   ...
   }
}
  外部中断0用的P0.16,实测P0.16为3.32V,初始化中断设置电平模式,低电平有效,但是只要执行到IRQEnable();,就会立刻产生中断,且一直在中断中,请各位前辈帮我分析一下什么地方出了问题。 

相关帖子

沙发
microlab| | 2007-3-31 00:44 | 只看该作者

Re

首先,我不太清楚 为什么设置成低电平模式,却高电平会触发中断.
但是,你所说的一直在中断中,我猜想可能有如下两个原因:

1. 既然p0.16为高能触发中断,那么,如果你的p0.16一直是高的话,那自然会一直有中断

2. 就是进了中断后,没有清中断标志位,那么也会一直进中断

使用特权

评论回复
板凳
肖宾|  楼主 | 2007-3-31 09:45 | 只看该作者

re microlab

  首先感谢microlab对我的问题的关注。我想再说明一下情况。
  p0.16低电平,初始化后仍会发生中断,可以这样认为吧,无论P0.16的高低,只要初始化外部中断0,后就会产生中断。
  如果初始化改成高电平触发中断,无论P0.16的高低,都不会发生中断。另外我这里的确需要低电平触发的。还有中断服务程序我清除了中断标志,那不会忘掉的。 

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝