www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 嵌入式系統 >> PIC單片機 >> 正文

PIC中檔單片機的中斷總結

作者:佚名    文章來源:網絡    點擊數:    更新時間:2008-11-3

  中斷是PIC高手必須掌握的武器,轉貼一篇,還希望大家補充發表對中斷應用的見解。

   與51或者其他系列的單片機相比,PIC 單片機的中斷機制有其特殊之處,針對我們一些初學者存在的一些問題和疑惑,我在此做一個個人總結,不當的地方,請站友們指正。

  先摘引三個對PIC中斷理解的回帖,然后我再對中斷活動的過程、應該注意的事項、及一個疑惑進行較詳細的總結和解釋。

---------------

john frank :關于pic中斷有些不明白的地方
借用大蝦的程序;

;*******中斷服務代碼*************

    btfss    INTCON,T0IE      ; 判斷是否為T0中斷
    goto    other_int
    btfss    INTCON,T0IF      ; it ’s the time of T0 int
    goto    other_int
    bcf    INTCON,T0IF      ; 是T0中斷,清除中斷標志
    movlw    0x10          ; 微秒的高位字節加上定時時間 256x16分頻=4096=0x1000的高位(0x10)
    addwf    us+1
    goto    end_int         
other_int              ; 可添加其他中斷服務代碼
    nop              ; other isr code can be added

;**********************************

end_int                  ; 恢復現場

=================

假如又有新的中斷正好在這段程序中間產生

btfss    INTCON,T0IF        
goto    other_int
bcf    INTCON,T0IF    

程序豈不是要出錯跑飛了

john frank:
謝謝你的關注。
我講一下自己的理解,權做回答,不當之處,還請站友們指點。

    pic中檔單片機系列沒有“硬件中斷優先級別”(請允許我這樣說),含義是指:當內核正在處理當前的中斷服務A時,在這個期間里,其他任何中斷的產生,只能使其標志位xxIF置1,不能剝奪當前中斷服務對CPU的占用權(反應在PC指針不能被新的中斷改變指向),必須等到當前中斷服務處理A完畢,然后,根據goto other_int語句的轉向,依次判斷。若新發生的中斷處理代碼在中斷服務A之后(前、后指代碼在ROM中地址順序,越大越后),則進行新發生的中斷處理;若恰好新發生的中斷服務代碼在剛被處理完畢的中斷服務A代碼之前,則將不予理會,(即程序指針PC不會在中斷處理代碼空間中又返回到0004H的入口),等到執行到retfie 后返回主程序,然后再次進入中斷入口0004H...

   之所以說其無“硬件中斷優先級別”是與“軟件中斷優先級別”對應的,通過中斷服務代碼對中斷標志和IE的檢測的先后,可設立優先級。

   當然,準確地說,這是一種順序,而非級別,呵呵。

   如果了解一下51的中斷系統,相信你能更好地理解PIC的中斷的級別:

將會出現你說的情況,當優先級更高的中斷來臨時,內核將暫時停止當前中斷服務,保存當前中斷服務的現場,執行優先級更高的中斷服務,處理完成后,恢復現場,執行未處理完成的中斷服務....,最后,返回主程序。

   小弟講得有點煩瑣,并不形象,可能還有紕漏和謬誤之處,請大家指正,相信john frank在仔細看書之后,應該可以形成自己的正確看法。

zdtdl :小弟說兩句~~

簡單地說,當系統響應一個中斷時,GIE位將被自動清零以禁止其他的中斷,在執行中斷返回指令RETFIE后系統再自動置GIE位1開放中斷。只要不在中斷程序中對GIE置1,就不會產生反復進入中斷的現象,靠查詢方式決定響應誰。PIC也有中斷嵌套,可以形成多級嵌套,甚至自身嵌套,不過嵌套的級數絕對不能超過硬件堆棧的深度。

-------------------------


PIC中檔單片機的中斷總結正文


一、中斷活動的過程

  對于PIC單片機來說,一次中斷的過程大致有下列階段:
為了使得說明形象和直觀,本文采用一些詼諧的語句來比喻說明:

中斷請求---------比喻成申請買經濟適用房的請求
中斷標志-------一份申請書
本中斷使能xxIE-----本單位領導
PEIE-------------戶口辦公室主任
GIE--------------銀行的管理信貸的科長

  1. 中斷請求:房子太少,兒子要結婚了,得買房了,可資源和財力有限,不能賣商品房,只好按特殊情況處理,寫一份申請書(中斷標志位IF置1);
  2. 本單位領導xxIE看了之后,如果給你蓋了一個戳:(即該中斷使能位IE=1),那么恭喜你,這份申請書可以提交到更高一級的部門;如果沒蓋(xxIE= 0),那么對不起,先放我這里吧,等我們研究研究好后再說。如果你不開心,要拿回申請書撕掉,呵呵,那么IF=0;你的購房請求之夢破滅;
  3. xxIE領導將根據戶口,將這些請求書給分類,一類是外地遷來的戶口,提交給戶口辦公室PEIE主任審查,PEIE主任如果給你蓋了個戳(PEIE= 1),那么,他將會把申請書提交給銀行的GIE科長批準,否則就是放在這里再研究研究或者你要回來撕毀;一類是本地戶口,可直接提交給銀行的GIE科長批準,然后你將申請書帶到GIE科長的辦公室。
  4.  GIE科長蓋了章之后(GIE=1),然后,你就可以拿著申請書去找房地產商要房子了(此時PC指針=0004H),因為GIE科長有很多事情要做,所以他每蓋了一次戳之后(注意是一次不是一個,因為也許有多個中斷同時發生,也就是說有其他地方的人來請GIE蓋戳),就在辦公室門外掛了個牌子:請勿打擾。他自己則休息去了,直到接到RETFIE的電話或者有人打他的手機。
  5. 房地產商準備給房子了,不過你最好得先把各項手續給填好,叫5w押金,另外協議阿,合同阿,都得自己搞定,這叫“保護現場”。
  6. 房地產商開始上班了,于是挨個查“申請書”是誰提交的,以便給你安排你預定的房子。這個叫“中斷查詢”。
  7. 查到是你的后,然后打電話讓你過來,帶你去看房子,把鑰匙給你。這個交“中斷處理”。
  8.  鑰匙交給你之后,房子你是到手了,不過這份申請書就失效了,房地產商將該申請書銷毀。這個叫“清除中斷標志”。
  9. 好啦,現在你可以去房地產商自己去要回以前交的押金,身份證啊等等。這個叫“恢復現場”。
  10. 最后,房地產商辦完了,讓RETFIE小姐打個電話給GIE科長(執行RETFIE指令),GIE科長才起來,把“請勿打擾”的牌子取下,讓其他的帶著申請書的人進來。當然,如果你的事情還沒搞定,GIE科長的關系戶打了他的手機(你在辦事時-處理中斷時,若有GIE被置1),他也會開門取下“請勿打擾” 的牌子,讓關系戶進來,給他蓋好章。這下就對不起了,人家有關系,所以你的事情要馬上停下來,先等關系戶辦完他的事情之后,再給你辦你的事情。這個叫“中斷嵌套”,要注意GIE科長有8個關系戶(硬件堆棧的深度為8級)哦。


二、需要注意的問題:
1. 中斷現場的保護(可以參考以前的帖子,在xieyubing版主的指點下,有恰當的例子);

2. 初次上電復位、電源跌落復位和其他情況下的復位,均使得全局中斷位GIE和其他中斷使能位xxIE=0;

3. 中斷標志位的狀態與該中斷源是否被屏蔽無關,與全局中斷使能位GIE也無關。

4. 當開放某一中斷源時,該中斷源就是通過中斷標志向CPU申請中斷的,無論什么原因,只要標志位IF置1(可以用軟件強行置1),均會產生中斷請求。

5. 當中斷標志位為1,如果該中斷被屏蔽或者被禁止了,只要不清除標志位,那么該中斷請求會被潛伏下來,一旦屏蔽解除,立即產生中斷響應。反之,如果在屏蔽/禁止條件解除之前清除了該標志位,那么則無中斷請求。

6. 當CPU響應任一中斷時,全局中斷使能位GIE會自動清零;當中斷返回時,它有自動置1。如果在中斷處理期間,用軟件將已經清零的GIE位又重新置位,這個時候若再出現中斷請求,就可以形成了中斷嵌套。即:在處理某一中斷期間又響應了其他中斷請求,就形成了中斷嵌套,此時,前一中斷處理過程會被暫停而進入新的中斷處理,當新中斷處理完畢后,才會繼續處理前一個被擱置的中斷。此方式可以形成多級嵌套,但不能超過硬件堆棧的深度8級,以免造成堆棧溢出而不能正常返回。

7. 如果同時發生多個中斷請求,則中斷處理的順序取決于中斷程序中的檢查中斷源的順序。

8. 若要防止中斷請求被丟失:則要注意下面兩種情況:如果同一中斷源的中斷發生間隔時間大于該中斷服務的處理時間,則可能出現中斷事件被忽略(體現在中斷服務的過程中,標志位被連續發生來兩次置位),例如:中斷事件發生的時間間隔為30ms,中斷服務處理加上跳轉判斷的時間為50ms,則情況將會如下所示:

   [中斷次數----------1][中斷次數----------2][中斷次數----------3][中斷次數----------4]

   [處理次數------------------------1][處理次數------------------------2][處理次數------------------------4]
如果在中斷處理一開始就清除IF,那么如上圖所示,中斷事件3、4 在處理次數2的過程中發生來兩次,那么即使IF清除發生在中斷次數3發生之前,也將丟失第三次中斷。

另外,即使中斷出現的時間間隔大于中斷服務的時間間隔,如果清除中斷標志位的指令安排在中斷服務子程序的尾部,就有可能造成丟失該中斷請求(即兩次中斷標志置位的事件只對應一條清除指令和一次中斷處理。

9. 在進行查表操作時必須禁止CPU響應中斷,以避免中斷返回時跳轉到不希望的地址上去。


三、一個疑惑
一個疑問:一些書上提到:如果對寄存器INTCON進行“讀-改-寫”操作的時候,要事先將GIE清0,再對INTCON進行操作,然后將GIE恢復為1

即BCF INTCON,GIE
  BSF INTCON,XX
  BSF INTCON,GIE

所提到的理由是:當CPU正在執行一條對INTCON寄存器進行“讀-改-寫”操作的指令時,如果恰好發生了中斷請求,則中斷服務程序會被執行兩次。這是因為當中斷請求發生后INTCON寄存器的GIE寄存器會被硬件自動清零(屏蔽所有中斷),并且程序轉入中斷例程入口(0004h)。當GIE被清零后,這時如果CPU正在執行一條對INTCON“讀-改-寫”的指令時,則GIE位還會被寫會操作重新置1,這樣就會造成CPU兩次進入中斷服務程序。

該段解釋晦澀難懂,根據中斷發生過程的時序(PICmicro中檔單片機系列參考手冊的第8-2頁):在第n個指令周期里,CPU檢測到IF標志位為1,則在n+1個周期內將自動使得GIE=0,該周期內既不取指也不執行指令,然后在n+2個指令周期里,0004h指針裝入PC指針,該周期也不運行其他指令,只完成0004H->(PC)的取指過程,第n+3個指令周期里,CPU執行0004h地址的指令碼,并同時取0005h的指令碼。

顯然,作者提到的“當GIE被清零后,這時如果CPU正在執行一條對INTCON“讀-改-寫”的指令時,則GIE位還會被寫會操作重新置1,這樣就會造成CPU兩次進入中斷服務程序。”的解釋存在下面的問題:GIE被硬件自動清零時的那個周期,是一個空運行周期,CPU并不執行指令,下一個周期也是空運行周期,不過是完成將0004h地址中的代碼取指操作。然后就開始了0004h地址的代碼的執行操作和0005h地址代碼的取指過程。那么GIE 在被硬件自動清零后要想置會1,只有兩種方法:RETFIE指令使GIE自動置1;通過軟件指令對GIE人為置1。顯然,如果對GIE人為置1的指令執行在對該標志位清零前,那么會出現前文所述的中斷嵌套(設該中斷為A),如果沒有其他中斷發生且執行順序先于中斷A且對中斷A的標志清零的話,那么中斷A的嵌套是一個死循環。就不是執行兩次的問題了----因為同一個中斷嵌套時,GIE在自動清零被軟件置一永遠都發生在清除IF之前,那么IF一直得不到清除,而GIE又幾乎一直都是1。

作者所說的情況似乎是這樣的:讀改寫INTCON指令按如下過程分解:讀INTCON的時候,GIE先是為1的,此時發生了中斷,GIE被硬件清零,開始執行中斷服務程序,然后再IF標志沒有清除之前,執行INTCON的其他位的修改和寫回操作,也將中斷發生前的GIE讀為1的信息寫回GIE,這樣,CPU被迫發生了第二次中斷。顯然,這樣是將BSF  INTCON, XX指令分解得支離破碎---本來一個指令周期可以完成的指令被跨了多個指令周期;而且一個指令周期的指令被CPU在不同地址處分解執行讀改寫過程。

如果不是這樣的話,那么作者的解釋就自相矛盾:“當CPU正在執行一條對INTCON寄存器的‘讀-改-寫’操作的指令時,如果恰好發生了中斷請求  ”與“當GIE被清零后,這是如果CPU正在執行一條對INTCON‘讀-改-寫’的指令時”相互矛盾

Tags:PIC單片機,中斷,單片機中斷,學習  
責任編輯:admin
相關文章列表
沒有相關文章
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久
亚洲欧洲日产国码二区| 经典一区二区三区| 在线不卡a资源高清| 美日韩一区二区| 国产亚洲欧美日韩俺去了| eeuss鲁片一区二区三区| 亚洲综合久久久久| 欧美一级片在线观看| 国产福利精品导航| 一区二区三区在线观看国产| 91精品国产品国语在线不卡| 国产精品1区2区3区在线观看| 1024国产精品| 欧美一区中文字幕| 国产成人免费网站| 亚洲午夜精品网| 精品国产污网站| 色综合久久88色综合天天6| 日韩精品一卡二卡三卡四卡无卡| 久久色在线观看| 91久久久免费一区二区| 久久9热精品视频| 亚洲丝袜另类动漫二区| 日韩欧美视频在线| www..com久久爱| 青青草成人在线观看| 亚洲国产高清aⅴ视频| 欧美日韩情趣电影| 国产成人免费在线观看| 午夜亚洲福利老司机| 欧美国产一区二区| 7777精品伊人久久久大香线蕉超级流畅| 国产麻豆一精品一av一免费| 一区二区三区日韩精品| 久久久91精品国产一区二区精品| 在线欧美一区二区| 国产精品456| 日韩二区三区四区| 一色屋精品亚洲香蕉网站| 欧美va亚洲va国产综合| 91黄色小视频| 国产成人精品免费在线| 日韩黄色免费电影| 亚洲天堂免费在线观看视频| 日韩美一区二区三区| 91黄色免费看| 大白屁股一区二区视频| 美女一区二区视频| 一二三四社区欧美黄| 中文字幕国产一区二区| 日韩精品一区国产麻豆| 精品视频在线看| 99精品久久只有精品| 国内外成人在线| 日本欧美加勒比视频| 一区二区理论电影在线观看| 中文字幕不卡在线| 精品日韩欧美在线| 欧美精品v日韩精品v韩国精品v| 91麻豆精品在线观看| 国产精品996| 精品一区二区av| 日本最新不卡在线| 亚洲444eee在线观看| 一级日本不卡的影视| 1000部国产精品成人观看| 国产三级一区二区三区| 日韩欧美亚洲国产精品字幕久久久 | 欧美乱熟臀69xxxxxx| 色综合一区二区三区| 成人免费观看视频| 国产精品1区2区| 国产一二精品视频| 蜜桃精品视频在线| 日韩激情一二三区| 婷婷夜色潮精品综合在线| 亚洲最大的成人av| 亚洲免费在线看| 日韩毛片高清在线播放| 国产精品欧美久久久久无广告 | 免费在线成人网| 丝袜美腿高跟呻吟高潮一区| 亚洲国产精品自拍| 亚洲亚洲人成综合网络| 亚洲午夜激情av| 亚洲一区二区三区在线| 一级女性全黄久久生活片免费| 亚洲男女一区二区三区| 一区二区三区在线免费播放| 亚洲啪啪综合av一区二区三区| 亚洲欧洲无码一区二区三区| 国产精品伦理在线| 国产精品成人在线观看| 亚洲欧美一区二区在线观看| 亚洲国产高清aⅴ视频| 国产精品国产三级国产aⅴ中文| 国产精品美女久久久久aⅴ国产馆| 国产精品理伦片| 亚洲欧美另类图片小说| 亚洲乱码国产乱码精品精可以看| 一区二区三区免费| 亚洲国产一二三| 午夜激情一区二区| 午夜精品在线看| 奇米影视7777精品一区二区| 蜜桃精品视频在线| 国产在线播放一区三区四| 国产在线精品一区二区| 福利一区在线观看| k8久久久一区二区三区| 一本大道av一区二区在线播放| 91成人看片片| 欧美精品一卡两卡| 日韩午夜电影av| 久久久影视传媒| 国产精品三级视频| 亚洲另类在线视频| 日韩在线播放一区二区| 精品亚洲免费视频| 成人精品电影在线观看| 一本高清dvd不卡在线观看| 欧美挠脚心视频网站| 日韩精品一区二区三区在线观看 | 久久亚洲一区二区三区明星换脸 | 久久久99免费| 国产精品成人免费精品自在线观看| 亚洲免费伊人电影| 天天操天天色综合| 黄色资源网久久资源365| 成人午夜私人影院| 欧美日韩综合一区| 精品国产露脸精彩对白| 国产精品卡一卡二卡三| 亚洲一级二级在线| 久久福利资源站| 9久草视频在线视频精品| 欧美四级电影网| 久久亚洲欧美国产精品乐播| 亚洲人xxxx| 久久国产综合精品| www.一区二区| 制服.丝袜.亚洲.中文.综合| 国产亚洲欧美日韩俺去了| 亚洲综合色成人| 极品少妇一区二区三区精品视频| 99久精品国产| 日韩精品一区国产麻豆| 亚洲色图另类专区| 奇米色777欧美一区二区| 成人精品国产一区二区4080| 欧美日韩国产色站一区二区三区| 久久久久国产精品人| 一区二区在线观看视频在线观看| 麻豆精品一区二区| 91丨porny丨国产入口| 欧美一级日韩免费不卡| 亚洲天堂2016| 黑人巨大精品欧美一区| 91欧美激情一区二区三区成人| 欧美一级黄色录像| 亚洲色图视频网站| 国内成+人亚洲+欧美+综合在线 | 日韩一区二区三区视频在线 | 日韩小视频在线观看专区| 亚洲婷婷综合色高清在线| 久久国产精品无码网站| 在线视频综合导航| 久久久精品日韩欧美| 午夜精品福利久久久| 99精品久久99久久久久| 欧美r级电影在线观看| 亚洲国产欧美日韩另类综合 | 欧美欧美午夜aⅴ在线观看| 国产精品久久久久久亚洲毛片 | 欧美一级xxx| 亚洲精品成人精品456| 国产伦理精品不卡| 717成人午夜免费福利电影| 亚洲日韩欧美一区二区在线| 国产精品456露脸| 日韩免费高清电影| 亚洲成人av电影在线| 99久久综合精品| 久久综合色之久久综合| 日韩电影免费一区| 日本高清不卡aⅴ免费网站| 欧美国产激情一区二区三区蜜月| 蜜桃久久精品一区二区| 欧美日韩久久一区二区| 亚洲日本在线a| 成人教育av在线| 久久精品这里都是精品| 人人精品人人爱| 精品视频资源站| 悠悠色在线精品| 99视频热这里只有精品免费| 久久精品亚洲一区二区三区浴池| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美视频中文一区二区三区在线观看| 国产精品私房写真福利视频|