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

          新聞中心

          S3C2410外部中斷

          作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          S3C2410有24個外部中斷引腳:EINT0~EINT23,但是對于EINT0~EINT3這4個外部中斷而言,使用比較簡單;對于其它20個而言,使用稍稍復(fù)雜一些。

          首先,來看S3C2410的中斷控制器,有6個中斷裁決器分為2級,第1級5個,第2級1個;第1級的5個裁決器管理32級中斷源,在這32級中斷源中有2個保留,24級是給內(nèi)部中斷源的,對于24個外部中斷只給了6個中斷級:EINT0、EINT1、EINT2、EINT3、EINT4~7、EINT8~23,EINT4~EINT7共享一個中斷級,EINT8~EINT23共享一個中斷級。

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

          中斷控制器中主要的相關(guān)寄存器有:INTMSK、SRCPND、PRIORITY、INTPND,還有一個INTMOD。但是對于外部中斷還有幾個寄存器:EXTINTn、EINTMSK、EINTPEND等。

          對于外部中斷EINT0~EINT3由于沒有共享,因此外部寄存器中只有EXTINT0和它們有關(guān),進(jìn)行中斷觸發(fā)電平信號的設(shè)置。

          但是對于其他的20個外部中斷而言,所有上面提到的寄存器都有關(guān)系。實際上對于EINT4~EINT23,實際上可以看作有3級屏蔽,第1級屏蔽是CPSR中的I-Bit和F-Bit,第2級屏蔽是EINTMASK([4:23]每一位對應(yīng)一個相應(yīng)的外部中斷),第3級屏蔽是INTMSK(Bit4、Bit5);對于EINT0~EINT3而言,只是INTMSK中的Bit0~Bit3,因此在變成初始化時應(yīng)該要特別注意。

          在外部中斷有中斷請求時,由于EINT4~7、EINT8~23分別共享中斷,因此在SRCPND中分別對應(yīng)Bit4、Bit5,最終導(dǎo)致INTPND中的相應(yīng)位置1(在任何時刻只能有一個位置1),但是如何分辨這些共享的中斷?可以通過查詢EINTPEND來進(jìn)行(Bit4~Bit23分別對應(yīng)1個外部中斷)。由于在相應(yīng)中斷后在服務(wù)例程中應(yīng)將掛起寄存器中相應(yīng)的位清0來清除未處理狀態(tài),因此對于EINT4~7、EINT8~23這20個外部中斷的清除掛起寄存器的順序是:

          1. EINTPEND(可能多位同事為1),方法:向要清0的位寫1,其它位寫0,但要注意由于第4位保留,因此不要試圖向第4位寫1,可能會導(dǎo)致不可預(yù)料的結(jié)果。

          2.SRCPND(可能多位同時為1),方法:向要清0的位寫1,其它位寫0。

          3.INTPND,方法:向其寫本身的數(shù)據(jù)(即INTPND=INTPND)。



          關(guān)鍵詞: S3C2410外部中

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();