關(guān)于LPC2103外部中斷
在利用LPC2103的三個(gè)外部中斷作為按鍵輸入時(shí),slot0存放EINT0,slot1存放EINT1,slot2存放EINT2。
本文引用地址:http://www.ex-cimer.com/article/201611/316788.htm下面分三種情況說明
(1)如果首先是EINT2進(jìn)入中斷,那么EINT1和EINT0還是可以進(jìn)入中斷的;
(2)如果首先是EINT1進(jìn)入中斷,那么EINT2就進(jìn)不去中斷處理程序了,但是EINT0還是可以進(jìn)入中斷的;
(3)如果首先是EINT0進(jìn)入中斷,那么EINT1和EINT0就都無法進(jìn)入中斷的
而且不管是EINT0,EINT1還是EINT2,都只能進(jìn)入一次中斷,第二次就無法進(jìn)入了。
針對(duì)以上外部中斷中的bug,本人進(jìn)行了多次反復(fù)的實(shí)驗(yàn),發(fā)現(xiàn)在中斷處理程序里面把VICVectAddr 的值重新修改為0以后,可以解決上述問題。
在中斷處理程序的最后寫VICVectAddr =0是為了更新硬件優(yōu)先級(jí)。
以上解決方法是建立在程序正確,唯獨(dú)在中斷處理程序中沒有修改VICVectAddr 的情況
評(píng)論