关于LPC2103外部中断
在利用LPC2103的三个外部中断作为按键输入时,slot0存放EINT0,slot1存放EINT1,slot2存放EINT2。
本文引用地址:https://www.eepw.com.cn/article/201611/316788.htm下面分三种情况说明
(1)如果首先是EINT2进入中断,那么EINT1和EINT0还是可以进入中断的;
(2)如果首先是EINT1进入中断,那么EINT2就进不去中断处理程序了,但是EINT0还是可以进入中断的;
(3)如果首先是EINT0进入中断,那么EINT1和EINT0就都无法进入中断的
而且不管是EINT0,EINT1还是EINT2,都只能进入一次中断,第二次就无法进入了。
针对以上外部中断中的bug,本人进行了多次反复的实验,发现在中断处理程序里面把VICVectAddr 的值重新修改为0以后,可以解决上述问题。
在中断处理程序的最后写VICVectAddr =0是为了更新硬件优先级。
以上解决方法是建立在程序正确,唯独在中断处理程序中没有修改VICVectAddr 的情况
评论