LPC2103學(xué)習(xí)之外部中斷
LPC2103有三個(gè)外部中斷源。分別是外部中斷0(EINT0),外部中斷1(EINT1),外部中斷2(EINT2)。另外LPC2103的10個(gè)捕獲輸入也可以作為外部中斷輸入,跟外部中斷不同之處就是不能將掉電模式下的CPU喚醒。
下面的圖展示了LPC2103的外部中斷系統(tǒng)的結(jié)構(gòu),看到這個(gè)結(jié)構(gòu),對(duì)寄存器的操作一下也明白了不少。
下面是4個(gè)跟外部中斷有關(guān)的寄存器
下面是寄存器的具體介紹,首先是外部中斷標(biāo)志寄存器EXINT。
其中需要我們注意的是相應(yīng)中斷使標(biāo)志位置1時(shí),我們需要向相應(yīng)寄存器位寫1以清除標(biāo)志位。而且在電平觸發(fā)方式下,只有引腳處于無效狀態(tài)時(shí)才又可能將標(biāo)志位清除。比如設(shè)置的為高電平觸發(fā),則直到相應(yīng)引腳變?yōu)榈碗娖綍r(shí)我們才能將標(biāo)志位清0.具體寄存器說明如圖:
外部中斷喚醒寄存器EXTWAKE.
EXTWAKE寄存器中的位允許相應(yīng)的外部中斷將處理器從掉電模式下喚醒。且實(shí)現(xiàn)掉電喚醒不需要在向量中斷控制器中使能相應(yīng)的中斷。這樣做的好處是允許外部中斷喚醒處理器,但不產(chǎn)生中斷。
具體寄存器說明如圖:
外部中斷模式寄存器EXTMODE。
此寄存器主要用來選擇中斷方式是電平觸發(fā)還是邊沿觸發(fā)。注意的是只有選擇用作EINT功能的引腳,并通過VICIntEnable使能相應(yīng)中斷,才能產(chǎn)生外部中斷。
具體寄存器說明如圖:
外部中斷極性寄存器EXTPOLAR
此寄存器主要是與上面的模式寄存器相配合,準(zhǔn)確描述出中斷信號(hào)波形。
具體寄存器說明如圖:
下面的圖展示的是外部中斷觸發(fā)設(shè)置
下面說下外部中斷引腳設(shè)置中需注意到的兩點(diǎn):
1 如果要產(chǎn)生外部中斷,除了設(shè)置相應(yīng)的引腳模塊外,還需要設(shè)置VIC模塊,否則外部中斷就只能反映在EXTINT寄存器中。
2 若使器件進(jìn)入掉電模式并通過外部中斷喚醒,軟件應(yīng)正確設(shè)置引腳外部中斷功能。
下面圖展示的就是外部中斷與向量中斷控制器(VIC)的關(guān)系
由圖可知,外部中斷0~2分別對(duì)應(yīng)VIC通道的14~16。其中VICIntEnable控制通道的中斷使能,VICIntSelect用以分配通道中斷。當(dāng)為1時(shí),對(duì)應(yīng)中斷被分配為FIQ,為0時(shí)則為IRQ。
另外分配為IRQ時(shí),還需要設(shè)置對(duì)應(yīng)的通道控制寄存器VICVectorCntln和地址寄存器VICVectAddrn。
下面兩圖為電平中斷與邊沿中斷的設(shè)置,以外部中斷EINT0舉例說明。
參考資料《EasyARM2103教材》
評(píng)論