[ZLG-ARM] 关于ARM7系列芯片LPC2119外部中断的BUG

[复制链接]
 楼主| kernel99 发表于 2007-5-25 09:07 | 显示全部楼层 |阅读模式
在程序中先初始化外部中断口EINT2和EINT3,代码如下:<br />void&nbsp;ext_init(void)<br />{<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;set_gpio_p07eint2;//用到P0.7做为外部中断2的输入,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;set_gpio_p030eint3;//设置P0.30做为外部中断3的输入<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntSelect&nbsp;&nbsp;&nbsp;=&nbsp;0x00000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;EXTMODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0X0C;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//EDGE&nbsp;ACTIVE,外部中断2和3采用边触发方式<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EXTPOLAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0X0C;//上升沿触发(★)<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectCntl2&nbsp;&nbsp;&nbsp;=&nbsp;0x20&nbsp;|&nbsp;16;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;分配外部中断2到向量中断2<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr2&nbsp;&nbsp;&nbsp;=&nbsp;(INT32U)IRQ_Eint2;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置中断服务程序地址<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectCntl3&nbsp;&nbsp;&nbsp;=&nbsp;0x20&nbsp;|&nbsp;17;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;分配外部中断3到向量中断3<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr3&nbsp;&nbsp;&nbsp;=&nbsp;(INT32U)IRQ_Eint3;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置中断服务程序地址<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;&nbsp;&nbsp;=&nbsp;(1&lt&lt16)|(1&lt&lt17);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;使能EINT2,3中断<br />&nbsp;&nbsp;&nbsp;&nbsp;EXTINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0X0C;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//FLAG&nbsp;CLEAR,清零EINT2,EINT3<br /><br />}<br /><br />使用UICE的仿真器单步仿真,走到(EXTPOLAR=0X0C;//上升沿触发)就出现跑飞.各位大侠谈下是否这类有BUG.<br /><br />相应的针对外部中断初始化程序中加入:<br />uint8&nbsp;temp1,temp2;<br />temp1=VPBDIV;<br />temp2=VPBDIV;<br />VPBDIV=0;<br />EXTMODE=0x0c;//使能EINT2,EINT3中断为边沿激活<br />VPBDIV=temp2;<br /><br />就能通过仿真<br /><br /><br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

93

主题

177

帖子

1

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