<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一文讀懂單片機里面的“中斷”優(yōu)先級

一文讀懂單片機里面的“中斷”優(yōu)先級

作者: 時(shí)間:2018-08-27 來(lái)源:網(wǎng)絡(luò ) 收藏

  優(yōu)先級的內容,大家先通過(guò)我的介紹大概了解一下即可,后邊實(shí)際應用的時(shí)候我們再詳細理解。

本文引用地址:http://dyxdggzs.com/article/201808/391158.htm

  在講產(chǎn)生背景的時(shí)候,我們僅僅講了看電視和燒水的例子,但是實(shí)際生活當中還有更復雜的,比如我正在看電視,這個(gè)時(shí)候來(lái)電話(huà)了,我要進(jìn)入接電話(huà)的“”程序當中去,就在接電話(huà)的同時(shí),聽(tīng)到了水開(kāi)的聲音,水開(kāi)的“中斷”也發(fā)生了,我們就必須要放下手上的電話(huà),先把煤氣關(guān)掉,然后再回來(lái)聽(tīng)電話(huà),最后聽(tīng)完了電話(huà)再看電視,這里就產(chǎn)生了一個(gè)優(yōu)先級的問(wèn)題。

  還有一種情況,我們在看電視的時(shí)候,這個(gè)時(shí)候聽(tīng)到水開(kāi)的聲音,水開(kāi)的“中斷”發(fā)生了,我們要進(jìn)入關(guān)煤氣的“中斷”程序當中,而在關(guān)煤氣的同時(shí),電話(huà)聲音響了,而這個(gè)時(shí)候,我們的處理方式是先把煤氣關(guān)閉,再去接聽(tīng)電話(huà),最后再看電視。

  從這兩個(gè)過(guò)程中,我們可以得到一個(gè)結論,就是最最緊急的事情,一旦發(fā)生后,我們不管當時(shí)處在哪個(gè)“程序”當中,我們必須先去處理最最緊急的事情,處理完畢后再去解決其它事情。在我們的程序當中有時(shí)候也是這樣的,有一般緊急的中斷,有特別緊急的中斷,這取決于具體的系統設計,這就涉及到中斷優(yōu)先級和中斷嵌套的概念,在本章節我們先簡(jiǎn)單介紹一下相關(guān)寄存器,不做例程說(shuō)明。

  中斷優(yōu)先級有兩種,一種是搶占優(yōu)先級,一種是固有優(yōu)先級,先介紹搶占優(yōu)先級。來(lái)看表 6-4 和表 6-5。

  表 6-4 IP——中斷優(yōu)先級寄存器的位分配(地址 0xB8、可位尋址)位76543210符號----PT2PSPT1PX1PT0PX0復位值----000000

  表 6-5 IP——中斷優(yōu)先級寄存器的位描述位符號描述7--保留6--保留5PT2定時(shí)器2中斷優(yōu)先級控制位4PS串口中斷優(yōu)先級控制位3PT1定時(shí)器1中斷優(yōu)先級控制位2PX1外部中斷1中斷優(yōu)先級控制位1PT0定時(shí)器0中斷優(yōu)先級控制位0PX0外部中斷0中斷優(yōu)先級控制位

  IP 這個(gè)寄存器的每一位,表示對應中斷的搶占優(yōu)先級,每一位的復位值都是 0,當我們把某一位設置為 1 的時(shí)候,這一位的優(yōu)先級就比其它位的優(yōu)先級高了。比如我們設置了 PT0位為 1 后,當在主循環(huán)或者任何其它中斷程序中執行時(shí),一旦定時(shí)器 T0 發(fā)生中斷,作為更高的優(yōu)先級,程序馬上就會(huì )跑到 T0 的中斷程序中來(lái)執行。反過(guò)來(lái),當正在 T0中斷程序中執行時(shí),如果有其它中斷發(fā)生了,還是會(huì )繼續執行 T0 中斷程序,直到把 T0 中的中斷程序執行完畢以后,才會(huì )去執行其它中斷程序。

  當進(jìn)入低優(yōu)先級中斷中執行時(shí),如又發(fā)生了高優(yōu)先級的中斷,則立刻進(jìn)入高優(yōu)先級中斷執行,處理完高優(yōu)先級級中斷后,再返回處理低優(yōu)先級中斷,這個(gè)過(guò)程就叫做中斷嵌套,也稱(chēng)為搶占。所以搶占優(yōu)先級的概念就是,優(yōu)先級高的中斷可以打斷優(yōu)先級低的中斷的執行,從而形成嵌套。當然反過(guò)來(lái),優(yōu)先級低的中斷是不能打斷優(yōu)先級高的中斷的。

  那么既然有搶占優(yōu)先級,自然就也有非搶占優(yōu)先級了,也稱(chēng)為固有優(yōu)先級。在表 6-3 中的最后一列給出的就是固有優(yōu)先級,請注意,在中斷優(yōu)先級的編號中,一般都是數字越小優(yōu)先級越高。從表中可以看到一共有 1~6 共 6 級的優(yōu)先級,這里的優(yōu)先級與搶占優(yōu)先級的一個(gè)不同點(diǎn)就是,它不具有搶占的特性,也就是說(shuō)即使在低優(yōu)先級中斷執行過(guò)程中又發(fā)生了高優(yōu)先級的中斷,那么這個(gè)高優(yōu)先級的中斷也只能等到低優(yōu)先級中斷執行完后才能得到響應。既然不能搶占,那么這個(gè)優(yōu)先級有什么用呢?

  答案是多個(gè)中斷同時(shí)存在時(shí)的仲裁。比如說(shuō)有多個(gè)中斷同時(shí)發(fā)生了,當然實(shí)際上發(fā)生這種情況的概率很低,但另外一種情況就常見(jiàn)的多了,那就是出于某種原因我們暫時(shí)關(guān)閉了總中斷,即 EA=0,執行完一段代碼后又重新使能了總中斷,即 EA=1,那么在這段時(shí)間里就很可能有多個(gè)中斷都發(fā)生了,但因為總中斷是關(guān)閉的,所以它們當時(shí)都得不到響應,而當總中斷再次使能后,它們就會(huì )在同時(shí)請求響應了,很明顯,這時(shí)也必需有個(gè)先后順序才行,這就是非搶占優(yōu)先級的作用了——如表 6-3 中,誰(shuí)優(yōu)先級最高先響應誰(shuí),然后按編號排隊,依次得到響應。

  搶占優(yōu)先級和非搶占優(yōu)先級的協(xié)同,可以使單片機中斷系統有條不紊的工作,既不會(huì )無(wú)休止的嵌套,又可以保證必要時(shí)緊急任務(wù)得到優(yōu)先處理。在后續的學(xué)習過(guò)程中,中斷系統會(huì )與我們如影隨形,處處都有它的身影,隨著(zhù)學(xué)習的深入,相信你對它的理解也會(huì )更加的深入。



關(guān)鍵詞: 單片機 中斷

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>