[ZLG-ARM] 请问一下关于中断的问题

[复制链接]
2161|2
 楼主| 肖宾 发表于 2007-3-31 00:33 | 显示全部楼层 |阅读模式
ic, vi, se, BLE, tc
<br />各位大虾,小弟是个新手,请问一下关于中断的问题。我用的LPC2138<br />  我用了一个外部中断,一个RTC年增量中断,只要我一初始化结束就是立刻进入到中断服务程序&nbsp;&nbsp;&nbsp;&nbsp;,就是一直在响应中断。感觉好奇怪啊。<br />  void&nbsp;IRQSet&nbsp;(void)<br />    {VICIntSelect&nbsp;&nbsp;&nbsp;=&nbsp;0x00000000;<br />     <br />     EXTMODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x00;<br />     EXTPOLAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x00;<br />     VICVectCntl0&nbsp;&nbsp;&nbsp;=&nbsp;0x20&nbsp;|14;<br />     VICVectAddr0&nbsp;&nbsp;&nbsp;=&nbsp;(uint32)IRQ_Eint0;<br />     EXTINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x01;<br />     VICIntEnable&nbsp;&nbsp;|=&nbsp;1&nbsp;&lt&lt&nbsp;14;<br /><br />     VICVectCntl2&nbsp;&nbsp;&nbsp;=&nbsp;0x20&nbsp;|&nbsp;13;<br />     VICVectAddr2&nbsp;&nbsp;&nbsp;=&nbsp;(uint32)RTC_Int;<br />     VICIntEnable&nbsp;&nbsp;|=&nbsp;(1&nbsp;&lt&lt&nbsp;13);&nbsp;&nbsp;&nbsp;&nbsp;<br />     ILR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;<br />    }<br />int&nbsp;main(void)<br />{&nbsp;PINSEL0&nbsp;=0x80050000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//初始化管脚<br />&nbsp;&nbsp;PINSEL1&nbsp;=0x054802A9;<br />&nbsp;&nbsp;PINSEL2&nbsp;=0x00000004;<br />&nbsp;&nbsp;IO0DIR&nbsp;=0x00001CFF;<br />&nbsp;&nbsp;IO1DIR&nbsp;=0x03FF0000;<br /> <br /> IRQSet()&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> IRQEnable();<br /> while(1)<br />&nbsp;&nbsp;{...<br />&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;}<br />}<br />  外部中断0用的P0.16,实测P0.16为3.32V,初始化中断设置电平模式,低电平有效,但是只要执行到IRQEnable();,就会立刻产生中断,且一直在中断中,请各位前辈帮我分析一下什么地方出了问题。&nbsp;<br />
microlab 发表于 2007-3-31 00:44 | 显示全部楼层

Re

首先,我不太清楚&nbsp;为什么设置成低电平模式,却高电平会触发中断.<br />但是,你所说的一直在中断中,我猜想可能有如下两个原因:<br /><br />1.&nbsp;既然p0.16为高能触发中断,那么,如果你的p0.16一直是高的话,那自然会一直有中断<br /><br />2.&nbsp;就是进了中断后,没有清中断标志位,那么也会一直进中断<br />
 楼主| 肖宾 发表于 2007-3-31 09:45 | 显示全部楼层

re microlab

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

本版积分规则

3

主题

7

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部