中斷優(yōu)先級的內(nèi)容,有一般緊急的中斷,有特別緊急的中斷,這取決于具體的系統(tǒng)設(shè)計,這就涉及到中斷優(yōu)先級和中斷嵌套的概念,今天先簡單介紹一下相關(guān)寄存器,不做例程說明。
中斷的產(chǎn)生背景,實際生活當中還有更復(fù)雜的,比如我正在看電視,這個時候來電話了,我要進入接電話的“中斷”程序當中去,就在接電話的同時,聽到了水開的聲音,水開的“中斷”也發(fā)生了,我們就必須要放下手上的電話,先把煤氣關(guān)掉,然后再回來聽電話,最后聽完了電話再看電視,這里就產(chǎn)生了一個優(yōu)先級的問題。
還有一種情況,我們在看電視的時候,這個時候聽到水開的聲音,水開的“中斷”發(fā)生了,我們要進入關(guān)煤氣的“中斷”程序當中,而在關(guān)煤氣的同時,電話聲音響了,而這個時候,我們的處理方式是先把煤氣關(guān)閉,再去接聽電話,最后再看電視。
從這兩個過程中,我們可以得到一個結(jié)論,就是最最緊急的事情,一旦發(fā)生后,我們不管當時處在哪個“程序”當中,我們必須先去處理最最緊急的事情,處理完畢后再去解決其它事情。
在我們的單片機程序當中有時候也是這樣的,有一般緊急的中斷,有特別緊急的中斷,這取決于具體的系統(tǒng)設(shè)計,這就涉及到中斷優(yōu)先級和中斷嵌套的概念,今天先簡單介紹一下相關(guān)寄存器,不做例程說明。
中斷優(yōu)先級有兩種:一種是搶占優(yōu)先級,一種是固有優(yōu)先級。
搶占優(yōu)先級
先介紹搶占優(yōu)先級。來看表1和表2。
表1:IP——中斷優(yōu)先級寄存器的位分配(地址0xB8、可位尋址)
表2:IP——中斷優(yōu)先級寄存器的位描述
IP 這個寄存器的每一位,表示對應(yīng)中斷的搶占優(yōu)先級,每一位的復(fù)位值都是 0,當我們把某一位設(shè)置為 1 的時候,這一位的優(yōu)先級就比其它位的優(yōu)先級高了。
比如我們設(shè)置了 PT0位為 1 后,當單片機在主循環(huán)或者任何其它中斷程序中執(zhí)行時,一旦定時器 T0 發(fā)生中斷,作為更高的優(yōu)先級,程序馬上就會跑到 T0 的中斷程序中來執(zhí)行。
反過來,當單片機正在 T0中斷程序中執(zhí)行時,如果有其它中斷發(fā)生了,還是會繼續(xù)執(zhí)行 T0 中斷程序,直到把 T0 中的中斷程序執(zhí)行完畢以后,才會去執(zhí)行其它中斷程序。
當進入低優(yōu)先級中斷中執(zhí)行時,如又發(fā)生了高優(yōu)先級的中斷,則立刻進入高優(yōu)先級中斷執(zhí)行,處理完高優(yōu)先級級中斷后,再返回處理低優(yōu)先級中斷,這個過程就叫做中斷嵌套,也稱為搶占。
所以搶占優(yōu)先級的概念就是,優(yōu)先級高的中斷可以打斷優(yōu)先級低的中斷的執(zhí)行,從而形成嵌套。當然反過來,優(yōu)先級低的中斷是不能打斷優(yōu)先級高的中斷的。
固有優(yōu)先級
那么既然有搶占優(yōu)先級,自然就也有非搶占優(yōu)先級了,也稱為固有優(yōu)先級。在表3中的最后一列給出的就是固有優(yōu)先級,請注意,在中斷優(yōu)先級的編號中,一般都是數(shù)字越小優(yōu)先級越高。
表3:中斷查詢序列
從表3中可以看到一共有 1~6 共 6 級的優(yōu)先級,這里的優(yōu)先級與搶占優(yōu)先級的一個不同點就是,它不具有搶占的特性,也就是說即使在低優(yōu)先級中斷執(zhí)行過程中又發(fā)生了高優(yōu)先級的中斷,那么這個高優(yōu)先級的中斷也只能等到低優(yōu)先級中斷執(zhí)行完后才能得到響應(yīng)。既然不能搶占,那么這個優(yōu)先級有什么用呢?
答案是多個中斷同時存在時的仲裁。比如說有多個中斷同時發(fā)生了,當然實際上發(fā)生這種情況的概率很低,但另外一種情況就常見的多了,那就是出于某種原因我們暫時關(guān)閉了總中斷,即 EA=0,執(zhí)行完一段代碼后又重新使能了總中斷,即 EA=1,那么在這段時間里就很可能有多個中斷都發(fā)生了,但因為總中斷是關(guān)閉的,所以它們當時都得不到響應(yīng),而當總中斷再次使能后,它們就會在同時請求響應(yīng)了,很明顯,這時也必需有個先后順序才行,這就是非搶占優(yōu)先級的作用了——如表3中,誰優(yōu)先級最高先響應(yīng)誰,然后按編號排隊,依次得到響應(yīng)。
搶占優(yōu)先級和非搶占優(yōu)先級的協(xié)同,可以使單片機中斷系統(tǒng)有條不紊的工作,既不會無休止的嵌套,又可以保證必要時緊急任務(wù)得到優(yōu)先處理。在后續(xù)的學(xué)習(xí)過程中,中斷系統(tǒng)會與我們?nèi)缬半S形,處處都有它的身影,隨著學(xué)習(xí)的深入,相信你對它的理解也會更加的深入。
-
單片機
+關(guān)注
關(guān)注
6065文章
44934瀏覽量
647665 -
寄存器
+關(guān)注
關(guān)注
31文章
5425瀏覽量
123559 -
中斷
+關(guān)注
關(guān)注
5文章
904瀏覽量
42552
原文標題:干貨 | 單片機里面的“中斷”優(yōu)先級
文章出處:【微信號:eda365wx,微信公眾號:EDA365電子論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
單片機中斷優(yōu)先級應(yīng)用案例

單片機中斷多優(yōu)先級的軟件擴展方法
詳解單片機里面的中斷優(yōu)先級

51單片機的中斷優(yōu)先級是怎么樣的及中斷嵌套的資料說明

單片機中斷系統(tǒng)和中斷控制寄存器與中斷響應(yīng)的詳細資料說明

為什么51單片機的默認中斷優(yōu)先級都是低級及中斷嵌套

51單片機的中斷優(yōu)先級及中斷嵌套的詳細資料說明

單片機之中斷優(yōu)先級設(shè)置

51單片機的中斷系統(tǒng)

51單片機的中斷系統(tǒng)

51單片機中斷優(yōu)先級都有啥?如何設(shè)置?

評論