新聞中心

PIC的中斷入口

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

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

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

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

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

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

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

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

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



關(guān)鍵詞: PIC 中斷入口 中斷源

評論


相關(guān)推薦

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

關(guān)閉