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

          新聞中心

          PIC的中斷入口

          作者: 時間:2013-05-04 來源:網(wǎng)絡 收藏

          的一些中、低端型號中,往往只有一個中斷函數(shù)入口,而且沒有中斷優(yōu)先級,這對于很多在學校學習89C51核出來的學生,往往給他們帶來一定的學習障礙。

          1、中檔MCU的固定為ROM首葉的0X0004地址,無論發(fā)生什么樣的中斷,應用程序都將被打斷并跳轉(zhuǎn)到這個地址去執(zhí)行相關的中斷處理函數(shù)。

          2、在51系列中,的區(qū)分是由硬件完成的,但在上,這個需要工程師自己通過軟件去判斷。

          3、因為只有一個,所以也沒有51那樣的兩級中斷優(yōu)先級,具體何種應該優(yōu)先執(zhí)行完全由工程師自己的軟件確定,這是通過中斷函數(shù)中的查詢代碼的順序決定的,可以把這個概念稱呼為軟件優(yōu)先級。

          4、PIC的中斷結(jié)構決定了PIC一般不考慮中斷嵌套,假使現(xiàn)在正在處理軟件優(yōu)先級中低優(yōu)先級的中斷源,即使此時產(chǎn)生更高優(yōu)先級的中斷,一般也必須處理完畢后退回MAIN函數(shù)后再次響應進入,這是因為響應中斷后,MCU硬件會自動關閉GIE標志位,這樣其它中斷請求就會被暫時掛起并在中斷退出后立即響應,當然,此時發(fā)出的中斷請求標志在被響應前將會一直被保持。

          5、因為PIC中端MCU采用的是全硬件堆棧,沒有數(shù)據(jù)堆棧,所以,關于中斷現(xiàn)場保護也完全交給工程師自由把握,所以進入中斷后惟一辦法就是把需要保護的數(shù)據(jù)保存到RAM中進行備份,中斷退出時再給予恢復,至于那些積存器需要被保護,這完全取決于工程師,一般來說,W、STATUS、PCLATH、FSR是必須的,其它需保護的內(nèi)容取決于工程師在中斷函數(shù)將會使用到哪些變量,并且這些變量在其它函數(shù)中也確定有使用記錄。對于代碼超過2K的程序,PCLATH是必須的,否則可不考慮它的保存,這是因為PC本身可保證2K以內(nèi)的尋址空間,而PC是由硬件自動壓棧到硬件堆棧中去了。

          6、一個不代表只能處理中斷源,通過上面的描述,我們可以清楚的了解,其實事情很簡單,其道理就是:多個中斷源對著一個中斷入口,當發(fā)生某一個中斷時將轉(zhuǎn)想中斷入口,處理完畢后退出,如果發(fā)生別的中斷,還是從這個入口進去。

          7、如何寫一個可靠的中斷函數(shù)是一個麻煩,當然這是針對ASM而言,如果你使用PICC,那么C編譯器會自動幫你處理掉大多數(shù)問題,但有關中斷源的查詢寫法還是要注意一下的,這點你可以自己搜索網(wǎng)絡文章,網(wǎng)絡有很多地方可提供張明峰先生那本入門書中有關PICC的那個獨立章節(jié),那里面把最基本、最關鍵的問題都講過了,請自行查閱。



          關鍵詞: PIC 中斷入口 中斷源

          評論


          相關推薦

          技術專區(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); })();