資料介紹
中斷的優先級有兩個:查詢優先級和執行優先級。
外部中斷0 > 定時/計數器0 > 外部中斷1 > 定時/計數器1 > 串行中斷
或 int0,timer0,int1,timer1,serial port 或 INT0、T0、INT1、T1、UART
或 PX0>PT0>PX1>PT1>PS>......
首先查詢優先級是不可以更改和設置的。這是一個中斷優先權排隊的問題。是指多個中斷源同時產生中斷信號時,中斷仲裁器選擇對哪個中斷源優先處理的順序。而這與是否發生中斷服務程序的嵌套毫不相干。當CPU查詢各個中斷標志位的時候,會依照上述5個查詢優先級順序依次查詢,當數個中斷同時請求的時候,會優先查詢到高優查詢先級的中斷標志位,但并不代表高查詢優先級的中斷可以打斷已經并且正在執行的低查詢優先級的中斷服務。
例如:當計數器0中斷和外部中斷1(按查詢優先級,計數器0中斷>外部中斷1)同時到達時,會進入計時器0的中斷服務函數;但是在外部中斷1的中斷服務函數正在服務的情況下,這時候任何中斷都是打斷不了它的,包括邏輯優先級比它高的外部中斷0計數器0中斷。
而中斷的執行優先級就是你對IP寄存器的設置了。在2個優先級的情況下,某位為1,則相應的中斷源為高優先級;為0,則為低優先級。
關于中斷的優先級有三條原則:
1、CPU同時接收到幾個中斷時,首先響應優先級最高的中斷請求;
2、正在進行的中斷過程不能被新的同級或低行優優先級的中斷請求所中斷;
3、正在進行的低行優優先級中斷服務,能被高行優優先級中斷請求中斷;
若:同一執行優先級中的中斷申請不止一個時,則有一個中斷優先權排隊問題。同一執行優先級的中斷優先權排隊,由中斷系統硬件確定的自然優先級形成,優先權自高到低的順序即:
外部中斷0>定時/計數0>外部中斷1>定時/計數1>串行接口
例如:設置IP = 0x10,即設置串口中斷為最高優先級,則串口中斷可以打斷任何其他的中斷服務函數實現嵌套,且只有串口中斷能打斷其他中斷的服務函數。若串口中斷沒有觸發,則其他幾個中斷之間還是保持邏輯優先級,相互之間無法嵌套。
關于中斷嵌套。可以這樣說,當一個中斷正在執行的時候,如果事先設置了中斷優先級寄存器IP,那么當一個更高優先級的中斷到來的時候會發生中斷嵌套,如果沒有設置則不會發生任何嵌套;如果有同一個優先級的中斷觸發,它并不是在“不斷的申請”,而是將它相應的中斷標志位置即IE寄存器的某位置位,當CPU執行完當前中斷之后,按照查詢優先級重新去查詢各個中斷標志位,進入相應中斷。
要記住,沒有設置IP時,單片機會按照查詢優先級(或都說邏輯優先級)來排隊進入服務。如果要想讓某個中斷優先響應, 則要設置IP,更改執行優先級(或者說物理優先級)。要注意的是,當設置了IP后,當低執行優先級中斷在運行時,如果有高執行優先級的中斷產生,則會嵌套調用進入高執行優先級的中斷。如果你是用C語言寫的程序,并在中斷服務時 using 了寄存組,要注意,兩個不同執行優先級的中斷服務程序不要 using 同一組寄存器。
看兩個問題,如下:
1 在各個中斷都是低優先級的時候,如果定時器0的溢出進入中斷。在這個中斷處理的過程中,外部中斷0也被觸發了,那么是不是要發生中斷嵌套?
2 如果定時器0發生中斷的時候,進入中斷處理程序,這個時候外部中斷1條件觸發條件滿足了。因為定時器0自然優先級比外部中斷1高,那么定時器0的中斷處理程序繼續執行。假設定時器中斷處理程序執行的過程中,外部中斷1的觸發。條件消失了,那么等定時器0的中斷處理完后,程序還是會進入外部中斷1處理程序嗎?
答案1:在IP事先設置了外部中斷0的優先級的情況下,CUP會中止定時器0的中斷服務,進入外部中斷0服務程序,執行完以后再回到定時器0中斷服務程序。否則不會。
答案2:肯定會進入中斷的;外部中斷1的觸發條件滿足后會置位外部1的中斷標志,即使后來外部中斷1的觸發條件消失了,也不會清除已置位的中斷標志,所以等定時器0的中斷處理完后,程序判斷外部中斷的中斷標志為1后依然會進入外部中斷1處理程序的,只有在外部中斷1處理程序中執行reti指令才會硬件清除外部中斷1的中斷標志(這也正是為什么中斷返回使用reti指令而不可以用ret替換的原因
摘自:
(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 51單片機中斷優先級都有啥?如何設置?
- STM8S105硬件中斷映射表和軟件中斷優先級位
- 51單片機的中斷系統
- 51單片機的中斷系統
- msp430的中斷優先級和中斷嵌套(及容易理解錯誤的說明)
- 單片機之中斷優先級設置
- 51單片機的中斷優先級和中斷嵌套的詳細資料概述
- 51單片機的中斷優先級是怎么樣的及中斷嵌套的資料說明
- 51單片機的中斷源優先級問題的詳細資料說明
- 為什么51單片機的默認中斷優先級都是低級及中斷嵌套
- STM32單片機中斷及NVIC的詳細資料概述
- 51單片機的中斷優先級及中斷嵌套的詳細資料說明
- 51單片機的中斷優先級和中斷嵌套的詳細資料介紹
- 單片機—中斷優先級實驗 0次下載
- MCS-51 系統中斷優先級的軟擴展
- GD32如何配置中斷優先級分組以及中斷優先級 4.8k次閱讀
- 單片機的默認中斷優先級 3k次閱讀
- 為什么有些STM32中斷沒有子優先級? 1.8k次閱讀
- STM32單片機中搶占優先級和響應優先級的表達方式解析 1.2w次閱讀
- 51單片機中斷優先級的設置方法解析 5.3w次閱讀
- 8031單片機中斷系統的基本結構介紹 5.1k次閱讀
- 單片機里面的中斷優先級相關寄存器詳解 1.3w次閱讀
- 解析單片機里的中斷優先級 9.6k次閱讀
- 如何采用STM32單片機中斷向量控制器NVIC來分配優先級的數量 3.9k次閱讀
- 如何設置51單片機的中斷優先級 3.5w次閱讀
- STM32單片機優先級的定義 1w次閱讀
- STM32單片機的外部中斷和中斷控制器的特點解析 6.5k次閱讀
- 基于8051單片機的中斷控制 2.5k次閱讀
- MSP430有哪些可屏蔽中斷_MSP430中斷的優先級 3.3k次閱讀
- stm32定時器優先級 5.9k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關型降壓3.5A單節鋰電池充電管理電路技術手冊
- 0.74 MB | 1次下載 | 免費
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測距模塊產品手冊
- 0.43 MB | 1次下載 | 免費
- 8SDFM 激光測距模塊模組手冊
- 0.54 MB | 1次下載 | 免費
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場分析及創新應用
- 3.11 MB | 43次下載 | 免費
- 3RV1126B系列開發板產品資料
- 4.19 MB | 18次下載 | 免費
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發板 四核異構、3路千兆網,賦能多元化工業場景
- 3.05 MB | 12次下載 | 免費
- 6【開源】60余套STM32單片機、嵌入式Linux、物聯網、人工智能項目案例及入門學習資源包
- 10.55 MB | 8次下載 | 免費
- 7冷柜-電氣控制系統講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論