


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、與 51 或者其他系列的單片機(jī)相比, PIC 單片機(jī)的中斷機(jī)制有其特殊之 處,針對(duì)我們一些初學(xué)者存在的一些問(wèn)題和疑惑,我在此做一個(gè)個(gè)人總結(jié),不 當(dāng)?shù)牡胤剑?qǐng)站友們指正。 先摘引三個(gè)對(duì) PIC 中斷理解的回帖,然后我再對(duì)中 斷活動(dòng)的過(guò)程、應(yīng)該注意的事項(xiàng)、及一個(gè)疑惑進(jìn)行較詳細(xì)的總結(jié)和解釋。 johnfrank :關(guān)于 pic 中斷有些不明白的地方 借用大蝦的程序 ; ; 中斷服務(wù)代碼 btfssINTCON,T0IE; 判斷是否為 T0 中斷 gotoother_int btfssINTCON,T0IF; it 'sthetimeofT0int gotoother_int bcfINTCO
2、N,T0IF; 是 TO中斷,清除中斷標(biāo)志movlwOxlO;微秒的高位字節(jié)加上定時(shí)時(shí)間 256x16分頻 =4096=0x1000的高位(0x10) addwfus+1 gotoendnt othernt;可添加其他中斷服務(wù)代碼 nop;otherisrcodecanbeadded ;* end_int; 恢復(fù)現(xiàn)場(chǎng) =假如又有新的中斷正好在這段程序中間產(chǎn)生 btfssINTCON,T0IF gotoother_int bcfINTCON,T0IF 程序豈不是要出錯(cuò)跑飛了 johnfrank :謝謝你的關(guān)注。 我講一下自己的理解,權(quán)做回答,不當(dāng)之處,還 請(qǐng)站友們指點(diǎn)。 pic 中檔單片機(jī)系列沒(méi)
3、有“硬件中斷優(yōu)先級(jí)別”(請(qǐng)?jiān)试S我這 樣說(shuō)),含義是指:當(dāng)內(nèi)核正在處理當(dāng)前的中斷服務(wù)A時(shí),在這個(gè)期間里,其他任何中斷的產(chǎn)生,只能使其標(biāo)志位 xxIF 置 1,不能剝奪當(dāng)前中斷服務(wù)對(duì) CPU 的占用權(quán)(反應(yīng)在PC指針不能被新的中斷改變指向),必須等到當(dāng)前中斷服務(wù) 處理A完畢,然后,根據(jù)gotoother_int 語(yǔ)句的轉(zhuǎn)向,依次判斷。若新發(fā)生的 中斷處理代碼在中斷服務(wù) A之后(前、后指代碼在ROM中地址順序,越大越 后),則進(jìn)行新發(fā)生的中斷處理;若恰好新發(fā)生的中斷服務(wù)代碼在剛被處理完 畢的中斷服務(wù)A代碼之前,則將不予理會(huì),(即程序指針 PC不會(huì)在中斷處理代 碼空間中又返回到0004H的入口),等到
4、執(zhí)行到retfie 后返回主程序,然后再 次進(jìn)入中斷入口 0004H. 之所以說(shuō)其無(wú)“硬件中斷優(yōu)先級(jí)別”是與“軟件中 斷優(yōu)先級(jí)別”對(duì)應(yīng)的,通過(guò)中斷服務(wù)代碼對(duì)中斷標(biāo)志和 IE 的檢測(cè)的先后,可設(shè) 立優(yōu)先級(jí)。 當(dāng)然,準(zhǔn)確地說(shuō),這是一種順序,而非級(jí)別,呵呵。 如果了解一 下51的中斷系統(tǒng),相信你能更好地理解 PIC的中斷的級(jí)別:將會(huì)出現(xiàn)你說(shuō)的情況,當(dāng)優(yōu)先級(jí)更高的中斷來(lái)臨時(shí),內(nèi)核將暫時(shí)停止當(dāng)前中斷服務(wù),保存當(dāng)前 中斷服務(wù)的現(xiàn)場(chǎng),執(zhí)行優(yōu)先級(jí)更高的中斷服務(wù),處理完成后,恢復(fù)現(xiàn)場(chǎng),執(zhí)行 未處理完成的中斷服務(wù) ,最后,返回主程序。 小弟講得有點(diǎn)煩瑣,并不形象,可能還有紕漏和謬誤之處,請(qǐng)大家指正,相信 john
5、frank 在仔細(xì)看書(shū)之 后,應(yīng)該可以形成自己的正確看法。zdtdl :小弟說(shuō)兩句 簡(jiǎn)單地說(shuō),當(dāng)系統(tǒng)響應(yīng)一個(gè)中斷時(shí),GIE位將被自動(dòng)清零以禁止其他的中斷,在執(zhí)行中斷返回 指令RETFIE后系統(tǒng)再自動(dòng)置GIE位1開(kāi)放中斷。只要不在中斷程序中對(duì) GIE置 1,就不會(huì)產(chǎn)生反復(fù)進(jìn)入中斷的現(xiàn)象,靠查詢(xún)方式?jīng)Q定響應(yīng)誰(shuí)。PIC也有中斷嵌套,可以形成多級(jí)嵌套,甚至自身嵌套,不過(guò)嵌套的級(jí)數(shù)絕對(duì)不能超過(guò)硬件堆 棧的深度。 PIC中檔單片機(jī)的中斷總結(jié)正文一、中斷活動(dòng)的過(guò)程 對(duì)于PIC單片機(jī)來(lái)說(shuō),一次中斷的過(guò)程大致有下列階段: 為了使得說(shuō)明形象和直觀,本文采用一些詼諧的語(yǔ)句來(lái)比喻說(shuō)明: 中斷請(qǐng)求 - 比喻成申請(qǐng)買(mǎi)經(jīng)濟(jì)
6、適用房的請(qǐng)求 中斷標(biāo)志 一份申請(qǐng)書(shū) 本中斷 使能 xxIE 本單位領(lǐng)導(dǎo) PEIE 戶(hù)口辦公室主任 GIE 銀行的管理信貸的科長(zhǎng) 1. 中斷請(qǐng)求:房子太少,兒子要結(jié)婚了,得買(mǎi)房 了,可資源和財(cái)力有限,不能賣(mài)商品房,只好按特殊情況處理,寫(xiě)一份申請(qǐng)書(shū) (中斷標(biāo)志位 IF 置1); 2. 本單位領(lǐng)導(dǎo) xxIE 看了之后,如果給你蓋了一個(gè)戳: (即該中斷使能位 IE=1), 那么恭喜你,這份申請(qǐng)書(shū)可以提交到更高一級(jí)的部門(mén) ;如果沒(méi)蓋( xxIE=0 ),那么對(duì)不起,先放我這里吧,等我們研究研究好后再 說(shuō)。如果你不開(kāi)心,要拿回申請(qǐng)書(shū)撕掉,呵呵,那么IF=O;你的購(gòu)房請(qǐng)求之夢(mèng)破滅; 3.xxIE 領(lǐng)導(dǎo)將根據(jù)
7、戶(hù)口,將這些請(qǐng)求書(shū)給分類(lèi),一類(lèi)是外地遷來(lái)的戶(hù) 口,提交給戶(hù)口辦公室 PEIE主任審查,PEIE主任如果給你蓋了個(gè)戳(PEIE=1), 那么,他將會(huì)把申請(qǐng)書(shū)提交給銀行的 GIE科長(zhǎng)批準(zhǔn),否則就是放在這里再研究 研究或者你要回來(lái)撕毀;一類(lèi)是本地戶(hù)口,可直接提交給銀行的GIE科長(zhǎng)批準(zhǔn),然后你將申請(qǐng)書(shū)帶到GIE科長(zhǎng)的辦公室。4.GIE科長(zhǎng)蓋了章之后(GIE=1),然 后,你就可以拿著申請(qǐng)書(shū)去找房地產(chǎn)商要房子了 (此時(shí)PC指針=0004H),因?yàn)?GIE科長(zhǎng)有很多事情要做,所以他每蓋了一次戳之后(注意是一次不是一個(gè), 因?yàn)橐苍S有多個(gè)中斷同時(shí)發(fā)生,也就是說(shuō)有其他地方的人來(lái)請(qǐng)GIE蓋戳),就在辦公室門(mén)外掛了
8、個(gè)牌子:請(qǐng)勿打擾。他自己則休息去了,直到接到RETFIE的電話(huà)或者有人打他的手機(jī)。 5. 房地產(chǎn)商準(zhǔn)備給房子了,不過(guò)你最好得先把各項(xiàng) 手續(xù)給填好,叫5w押金,另外協(xié)議阿,合同阿,都得自己搞定,這叫“保護(hù)現(xiàn) 場(chǎng)”。 6. 房地產(chǎn)商開(kāi)始上班了,于是挨個(gè)查“申請(qǐng)書(shū)”是誰(shuí)提交的,以便給你 安排你預(yù)定的房子。這個(gè)叫“中斷查詢(xún)”。 7. 查到是你的后,然后打電話(huà)讓你 過(guò)來(lái),帶你去看房子,把鑰匙給你。這個(gè)交“中斷處理”。 8. 鑰匙交給你之 后,房子你是到手了,不過(guò)這份申請(qǐng)書(shū)就失效了,房地產(chǎn)商將該申請(qǐng)書(shū)銷(xiāo)毀。 這個(gè)叫“清除中斷標(biāo)志”。 9. 好啦,現(xiàn)在你可以去房地產(chǎn)商自己去要回以前交 的押金,身份證啊等等。
9、這個(gè)叫“恢復(fù)現(xiàn)場(chǎng)”。 10. 最后,房地產(chǎn)商辦完了, 讓RETFIE小姐打個(gè)電話(huà)給GIE科長(zhǎng)(執(zhí)行RETFIE指令),GIE科長(zhǎng)才起來(lái),把“請(qǐng)勿打擾”的牌子取下,讓其他的帶著申請(qǐng)書(shū)的人進(jìn)來(lái)。當(dāng)然,如果你的事 情還沒(méi)搞定,GIE科長(zhǎng)的關(guān)系戶(hù)打了他的手機(jī)(你在辦事時(shí)一處理中斷時(shí),若有 GIE被置1),他也會(huì)開(kāi)門(mén)取下“請(qǐng)勿打擾”的牌子,讓關(guān)系戶(hù)進(jìn)來(lái),給他蓋好 章。這下就對(duì)不起了,人家有關(guān)系,所以你的事情要馬上停下來(lái),先等關(guān)系戶(hù) 辦完他的事情之后,再給你辦你的事情。這個(gè)叫“中斷嵌套”,要注意GIE科長(zhǎng)有 8個(gè)關(guān)系戶(hù) (硬件堆棧的深度為 8級(jí))哦。 二、需要注意的問(wèn)題: 1. 中斷 現(xiàn)場(chǎng)的保護(hù) (可以參
10、考以前的帖子,在 xieyubing 版主的指點(diǎn)下,有恰當(dāng)?shù)睦?子); 2. 初次上電復(fù)位、電源跌落復(fù)位和其他情況下的復(fù)位,均使得全局中斷位 GIE和其他中斷使能位xxIE=O ; 3.中斷標(biāo)志位的狀態(tài)與該中斷源是否被屏蔽無(wú) 關(guān),與全局中斷使能位 GIE也無(wú)關(guān)。4.當(dāng)開(kāi)放某一中斷源時(shí),該中斷源就是通 過(guò)中斷標(biāo)志向CPU申請(qǐng)中斷的,無(wú)論什么原因,只要標(biāo)志位 IF置1(可以用軟 件強(qiáng)行置 1), 均會(huì)產(chǎn)生中斷請(qǐng)求。 5. 當(dāng)中斷標(biāo)志位為 1,如果該中斷被屏蔽或 者被禁止了,只要不清除標(biāo)志位,那么該中斷請(qǐng)求會(huì)被潛伏下來(lái),一旦屏蔽解 除,立即產(chǎn)生中斷響應(yīng)。反之,如果在屏蔽 / 禁止條件解除之前清除了該
11、標(biāo)志 位,那么則無(wú)中斷請(qǐng)求。6.當(dāng)CPJ向應(yīng)任一中斷時(shí),全局中斷使能位 GIE會(huì)自 動(dòng)清零;當(dāng)中斷返回時(shí),它有自動(dòng)置 1。如果在中斷處理期間,用軟件將已經(jīng) 清零的GIE位又重新置位,這個(gè)時(shí)候若再出現(xiàn)中斷請(qǐng)求,就可以形成了中斷嵌 套。即:在處理某一中斷期間又向應(yīng)了其他中斷請(qǐng)求,就形成了中斷嵌套,此 時(shí),前一中斷處理過(guò)程會(huì)被暫停而進(jìn)入新的中斷處理,當(dāng)新中斷處理完畢后, 才會(huì)繼續(xù)處理前一個(gè)被擱置的中斷。此方式可以形成多級(jí)嵌套,但不能超過(guò)硬 件堆棧的深度 8 級(jí),以免造成堆棧溢出而不能正常返回。 7. 如果同時(shí)發(fā)生多個(gè) 中斷請(qǐng)求,則中斷處理的順序取決于中斷程序中的檢查中斷源的順序。 8. 若要 防止中
12、斷請(qǐng)求被丟失:則要注意下面兩種情況:如果同一中斷源的中斷發(fā)生間 隔時(shí)間大于該如果沒(méi)蓋( xxIE=0 ),那么對(duì)不起,先放我這里吧,等我們研究研究好后再 說(shuō)。如果你不開(kāi)心,要拿回申請(qǐng)書(shū)撕掉,呵呵,那么IF=O;你的購(gòu)房請(qǐng)求之夢(mèng)破滅; 3.xxIE 領(lǐng)導(dǎo)將根據(jù)戶(hù)口,將這些請(qǐng)求書(shū)給分類(lèi),一類(lèi)是外地遷來(lái)的戶(hù) 口,提交給戶(hù)口辦公室 PEIE主任審查,PEIE主任如果給你蓋了個(gè)戳(PEIE=1), 那么,他將會(huì)把申請(qǐng)書(shū)提交給銀行的 GIE科長(zhǎng)批準(zhǔn),否則就是放在這里再研究 研究或者你要回來(lái)撕毀;一類(lèi)是本地戶(hù)口,可直接提交給銀行的GIE科長(zhǎng)批準(zhǔn),然后你將申請(qǐng)書(shū)帶到GIE科長(zhǎng)的辦公室。4.GIE科長(zhǎng)蓋了章之后
13、(GIE=1),然 后,你就可以拿著申請(qǐng)書(shū)去找房地產(chǎn)商要房子了 (此時(shí)PC指針=0004H),因?yàn)?GIE科長(zhǎng)有很多事情要做,所以他每蓋了一次戳之后(注意是一次不是一個(gè), 因?yàn)橐苍S有多個(gè)中斷同時(shí)發(fā)生,也就是說(shuō)有其他地方的人來(lái)請(qǐng)GIE蓋戳),就在辦公室門(mén)外掛了個(gè)牌子:請(qǐng)勿打擾。他自己則休息去了,直到接到RETFIE的電話(huà)或者有人打他的手機(jī)。 5. 房地產(chǎn)商準(zhǔn)備給房子了,不過(guò)你最好得先把各項(xiàng) 手續(xù)給填好,叫5w押金,另外協(xié)議阿,合同阿,都得自己搞定,這叫“保護(hù)現(xiàn) 場(chǎng)”。 6. 房地產(chǎn)商開(kāi)始上班了,于是挨個(gè)查“申請(qǐng)書(shū)”是誰(shuí)提交的,以便給你 安排你預(yù)定的房子。這個(gè)叫“中斷查詢(xún)”。 7. 查到是你的后,
14、然后打電話(huà)讓你 過(guò)來(lái),帶你去看房子,把鑰匙給你。這個(gè)交“中斷處理”。 8. 鑰匙交給你之 后,房子你是到手了,不過(guò)這份申請(qǐng)書(shū)就失效了,房地產(chǎn)商將該申請(qǐng)書(shū)銷(xiāo)毀。 這個(gè)叫“清除中斷標(biāo)志”。 9. 好啦,現(xiàn)在你可以去房地產(chǎn)商自己去要回以前交 的押金,身份證啊等等。這個(gè)叫“恢復(fù)現(xiàn)場(chǎng)”。 10. 最后,房地產(chǎn)商辦完了, 讓RETFIE小姐打個(gè)電話(huà)給GIE科長(zhǎng)(執(zhí)行RETFIE指令),GIE科長(zhǎng)才起來(lái),把“請(qǐng)勿打擾”的牌子取下,讓其他的帶著申請(qǐng)書(shū)的人進(jìn)來(lái)。當(dāng)然,如果你的事 情還沒(méi)搞定,GIE科長(zhǎng)的關(guān)系戶(hù)打了他的手機(jī)(你在辦事時(shí)一處理中斷時(shí),若有 GIE被置1),他也會(huì)開(kāi)門(mén)取下“請(qǐng)勿打擾”的牌子,讓關(guān)系戶(hù)進(jìn)
15、來(lái),給他蓋好 章。這下就對(duì)不起了,人家有關(guān)系,所以你的事情要馬上停下來(lái),先等關(guān)系戶(hù) 辦完他的事情之后,再給你辦你的事情。這個(gè)叫“中斷嵌套”,要注意GIE科長(zhǎng)有 8個(gè)關(guān)系戶(hù) (硬件堆棧的深度為 8級(jí))哦。 二、需要注意的問(wèn)題: 1. 中斷 現(xiàn)場(chǎng)的保護(hù) (可以參考以前的帖子,在 xieyubing 版主的指點(diǎn)下,有恰當(dāng)?shù)睦?子); 2. 初次上電復(fù)位、電源跌落復(fù)位和其他情況下的復(fù)位,均使得全局中斷位 GIE和其他中斷使能位xxIE=O ; 3.中斷標(biāo)志位的狀態(tài)與該中斷源是否被屏蔽無(wú) 關(guān),與全局中斷使能位 GIE也無(wú)關(guān)。4.當(dāng)開(kāi)放某一中斷源時(shí),該中斷源就是通 過(guò)中斷標(biāo)志向CPU申請(qǐng)中斷的,無(wú)論什么原因,只要標(biāo)志位 IF置1(可以用軟 件強(qiáng)行置 1), 均會(huì)產(chǎn)生中斷請(qǐng)求。 5. 當(dāng)中斷標(biāo)志位為 1,如果該中斷被屏蔽或 者被禁止了,只要不清除標(biāo)志位,那么該中斷請(qǐng)求會(huì)被潛伏下來(lái),一旦屏蔽解 除,立即產(chǎn)生中斷響應(yīng)。反之,如果在屏蔽 / 禁止條件解除之前清除了該標(biāo)志 位,那么則無(wú)中斷請(qǐng)求。6.當(dāng)CPJ向應(yīng)任一中斷時(shí),全局中斷使能位 GIE會(huì)自 動(dòng)清零;當(dāng)中斷返回時(shí),它有自動(dòng)置 1。如果在中斷處理期間,用軟件將已經(jīng) 清零的GIE位又重新置位
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)二苯基氯磷行業(yè)市場(chǎng)調(diào)查報(bào)告
- 2025年 中國(guó)鐵路青藏集團(tuán)有限公司招聘考試筆試試題附答案
- 2025年 錫林郭勒盟市級(jí)機(jī)關(guān)遴選考試筆試試題附答案
- 2024年中國(guó)釕粉行業(yè)市場(chǎng)調(diào)查報(bào)告
- 中國(guó)智能垃圾分類(lèi)技術(shù)行業(yè)市場(chǎng)占有率及投資前景預(yù)測(cè)分析報(bào)告
- 寫(xiě)字樓可行性分析報(bào)告
- 2024年中國(guó)磷酸銨鹽干滅火劑行業(yè)調(diào)查報(bào)告
- 2025年中國(guó)進(jìn)口食品行業(yè)市場(chǎng)調(diào)查研究及投資前景預(yù)測(cè)報(bào)告
- 2025年中國(guó)電力巴士行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2024-2030年中國(guó)凳類(lèi)家具行業(yè)市場(chǎng)深度研究及投資戰(zhàn)略咨詢(xún)報(bào)告
- 法律職業(yè)倫理試題及答案
- 2025年國(guó)家公務(wù)員考錄《申論》真題及參考答案(行政執(zhí)法卷)
- 2024珠海農(nóng)商銀行社會(huì)招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2025年公路水運(yùn)工程重大事故隱患判定標(biāo)準(zhǔn)
- 車(chē)間物料員員試題及答案
- 2025國(guó)內(nèi)外虛擬電廠實(shí)踐經(jīng)驗(yàn)分析及高質(zhì)量發(fā)展相關(guān)建議報(bào)告-國(guó)網(wǎng)能源院
- 錨桿錨固質(zhì)量無(wú)損檢測(cè)技術(shù)規(guī)程
- 老年癡呆健康知識(shí)講座課件
- 2025年中考語(yǔ)文二輪復(fù)習(xí):散文閱讀 專(zhuān)題練習(xí)題(含答案)
- 云南楚雄州金江能源集團(tuán)有限公司招聘筆試題庫(kù)2025
- 高中生物2015-2024年10年高考真題專(zhuān)題分類(lèi)匯編-專(zhuān)題14體液調(diào)節(jié)考點(diǎn)2激素調(diào)節(jié)的過(guò)程
評(píng)論
0/150
提交評(píng)論