<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > LPC2103學習之外部中斷

          LPC2103學習之外部中斷

          作者: 時間:2016-11-21 來源:網(wǎng)絡 收藏
          今天下午學習了LPC2103外部中斷,相對來說比較簡單。只是幾個寄存器的操作。

          本文引用地址:http://www.ex-cimer.com/article/201611/319105.htm

          LPC2103有三個外部中斷源。分別是外部中斷0(EINT0),外部中斷1(EINT1),外部中斷2(EINT2)。另外LPC2103的10個捕獲輸入也可以作為外部中斷輸入,跟外部中斷不同之處就是不能將掉電模式下的CPU喚醒。

          下面的圖展示了LPC2103的外部中斷系統(tǒng)的結(jié)構(gòu),看到這個結(jié)構(gòu),對寄存器的操作一下也明白了不少。

          下面是4個跟外部中斷有關的寄存器

          下面是寄存器的具體介紹,首先是外部中斷標志寄存器EXINT。

          其中需要我們注意的是相應中斷使標志位置1時,我們需要向相應寄存器位寫1以清除標志位。而且在電平觸發(fā)方式下,只有引腳處于無效狀態(tài)時才又可能將標志位清除。比如設置的為高電平觸發(fā),則直到相應引腳變?yōu)榈碗娖綍r我們才能將標志位清0.具體寄存器說明如圖:

          外部中斷喚醒寄存器EXTWAKE.

          EXTWAKE寄存器中的位允許相應的外部中斷將處理器從掉電模式下喚醒。且實現(xiàn)掉電喚醒不需要在向量中斷控制器中使能相應的中斷。這樣做的好處是允許外部中斷喚醒處理器,但不產(chǎn)生中斷。

          具體寄存器說明如圖:

          外部中斷模式寄存器EXTMODE。

          此寄存器主要用來選擇中斷方式是電平觸發(fā)還是邊沿觸發(fā)。注意的是只有選擇用作EINT功能的引腳,并通過VICIntEnable使能相應中斷,才能產(chǎn)生外部中斷。

          具體寄存器說明如圖:

          外部中斷極性寄存器EXTPOLAR

          此寄存器主要是與上面的模式寄存器相配合,準確描述出中斷信號波形。

          具體寄存器說明如圖:

          下面的圖展示的是外部中斷觸發(fā)設置

          下面說下外部中斷引腳設置中需注意到的兩點:

          1 如果要產(chǎn)生外部中斷,除了設置相應的引腳模塊外,還需要設置VIC模塊,否則外部中斷就只能反映在EXTINT寄存器中。

          2 若使器件進入掉電模式并通過外部中斷喚醒,軟件應正確設置引腳外部中斷功能。

          下面圖展示的就是外部中斷與向量中斷控制器(VIC)的關系

          由圖可知,外部中斷0~2分別對應VIC通道的14~16。其中VICIntEnable控制通道的中斷使能,VICIntSelect用以分配通道中斷。當為1時,對應中斷被分配為FIQ,為0時則為IRQ。

          另外分配為IRQ時,還需要設置對應的通道控制寄存器VICVectorCntln和地址寄存器VICVectAddrn。

          下面兩圖為電平中斷與邊沿中斷的設置,以外部中斷EINT0舉例說明。

          參考資料《EasyARM2103教材》



          關鍵詞: LPC2103外部中

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();