0中斷優先順序 乾貨 微控制器裡面的「中斷」優先順序

2021-10-16 07:38:54 字數 2176 閱讀 4707

摘要:

中斷優先順序的內容,有一般緊急的中斷,有特別緊急的中斷,這取決於具體的系統設計,這就涉及到中斷優先順序和中斷巢狀的概念,今天先簡單介紹一下相關暫存器,不做例程說明。

中斷的產生背景,實際生活當中還有更複雜的,比如我正在看電視,這個時候來**了,我要進入接**的「中斷」程式當中去,就在接**的同時,聽到了水開的聲音,水開的「中斷」也發生了,我們就必須要放下手上的**,先把煤氣關掉,然後再回來聽**,最後聽完了**再看電視,這裡就產生了乙個優先順序的問題。

還有一種情況,我們在看電視的時候,這個時候聽到水開的聲音,水開的「中斷」發生了,我們要進入關煤氣的「中斷」程式當中,而在關煤氣的同時,**聲音響了,而這個時候,我們的處理方式是先把煤氣關閉,再去接聽**,最後再看電視。

從這兩個過程中,我們可以得到乙個結論,就是最最緊急的事情,一旦發生後,我們不管當時處在哪個「程式」當中,我們必須先去處理最最緊急的事情,處理完畢後再去解決其它事情

在我們的微控制器程式當中有時候也是這樣的,有一般緊急的中斷,有特別緊急的中斷,這取決於具體的系統設計,這就涉及到中斷優先順序和中斷巢狀的概念,今天先簡單介紹一下相關暫存器,不做例程說明。

中斷優先順序有兩種:一種是搶占優先順序,一種是固有優先順序。

搶占優先順序

先介紹搶占優先順序。來看表1和表2。

表2:ip——中斷優先順序暫存器的位描述

ip 這個暫存器的每一位,表示對應中斷的搶占優先順序,每一位的復位值都是 0,當我們把某一位設定為 1 的時候,這一位的優先順序就比其它位的優先順序高了。

比如我們設定了 pt0位為 1 後,當微控制器在主迴圈或者任何其它中斷程式中執行時,一旦定時器 t0 發生中斷,作為更高的優先順序,程式馬上就會跑到 t0 的中斷程式中來執行。

反過來,當微控制器正在 t0中斷程式中執行時,如果有其它中斷發生了,還是會繼續執行 t0 中斷程式,直到把 t0 中的中斷程式執行完畢以後,才會去執行其它中斷程式。

當進入低優先順序中斷中執行時,如又發生了高優先順序的中斷,則立刻進入高優先順序中斷執行,處理完高優先順序級中斷後,再返回處理低優先順序中斷,這個過程就叫做中斷巢狀,也稱為搶占。

所以搶占優先順序的概念就是,優先順序高的中斷可以打斷優先順序低的中斷的執行,從而形成巢狀。當然反過來,優先順序低的中斷是不能打斷優先順序高的中斷的。

固有優先順序

那麼既然有搶占優先順序,自然就也有非搶占優先順序了,也稱為固有優先順序。在表3中的最後一列給出的就是固有優先順序,請注意,在中斷優先順序的編號中,一般都是數字越小優先順序越高。

表3:中斷查詢序列

從表3中可以看到一共有 1~6 共 6 級的優先順序,這裡的優先順序與搶占優先順序的乙個不同點就是,它不具有搶占的特性,也就是說即使在低優先順序中斷執行過程中又發生了高優先順序的中斷,那麼這個高優先順序的中斷也只能等到低優先順序中斷執行完後才能得到響應。既然不能搶占,那麼這個優先順序有什麼用呢?

答案是多個中斷同時存在時的仲裁。比如說有多個中斷同時發生了,當然實際上發生這種情況的概率很低,但另外一種情況就常見的多了,那就是出於某種原因我們暫時關閉了總中斷,即 ea=0,執行完一段**後又重新使能了總中斷,即 ea=1,那麼在這段時間裡就很可能有多個中斷都發生了,但因為總中斷是關閉的,所以它們當時都得不到響應,而當總中斷再次使能後,它們就會在同時請求響應了,很明顯,這時也必需有個先後順序才行,這就是非搶占優先順序的作用了——如表3中,誰優先順序最高先響應誰,然後按編號排隊,依次得到響應

搶占優先順序和非搶占優先順序的協同,可以使微控制器中斷系統有條不紊的工作,既不會無休止的巢狀,又可以保證必要時緊急任務得到優先處理。在後續的學習過程中,中斷系統會與我們如影隨形,處處都有它的身影,隨著學習的深入,相信你對它的理解也會更加的深入。

0中斷優先順序 51微控制器中斷基本概念

在了解基本概念之前,先看三個問題 1.你想使用的中斷是哪個?2.你所希望的觸發條件是什麼?3.你希望在中斷之後做什麼?可以邊看邊思考,文章最後給出答案 微控制器在執行程式時,中斷也隨時有可能發生,但無論何時發生,只要一旦發生,微控制器將立即暫停當前程式,趕去處理中斷程式,處理完中斷程式後再返回剛才暫...

0中斷優先順序 51微控制器核心的中斷及中斷向基礎知識

51核心的最基礎的中斷源請求有外部中斷 定時器中斷和串列埠中斷,這也是學習和開發者最長用的。當然還有其他的中斷源,比如adc spi pwm等。以外部中斷0為例,在程式設計中常使用的方式為 void int0 interrupt 0 using 1 在這裡特別做上筆記 其中前面的void int0 ...

0中斷優先順序 硬見小百科 微控制器中斷系統

微控制器中斷系統的概念 什麼是中斷,我們從乙個生活中的例程引入。你正在家中看書,突然 鈴響了,你放下書本,去接 和來 的人交談,然後放下 回來繼續看你的書。這就是生活中的 中斷 的現象,就是正常的工作過程被外部的事件打斷了。仔細研究一下生活中的中斷,對於我們學習微控制器的中斷也很有好處。第一 什麼可...