STM8S103之中斷優先級設置


STM8S的中斷由中斷控制器(ITC)控制。STM8所有IO都支持中斷,分為PA~PE 5個組,每組IO對應一個中斷服務函數(也就是每組IO只有一個向量)。STM8沒有專門的中斷狀態寄存器,所以只能通過剛進入中斷就讀取IDR來判斷,不過在某些情況下,此種方法就不好用了,所以在設計的時候就要考慮清楚,是不是會沖突.最好把有沖突的中斷放到不同的組。

STM8的外部中斷采用軟件優先級+硬件優先級的控制方法,來控制優先級分組.軟件優先級優先於硬件優先級。硬件優先級由向量號確定,向量號越小,優先級越高如下面圖中斷映射,中斷向量表。

STM8軟件優先級設置可以分為4個等級(0~3),實際上可設置的就三個等級:1~3。優先級順序:0<1<2<3,3的優先級最高,高優先級的中斷可以打斷低優先級的中斷
多個中斷同時發生:在軟件優先級相同的情況下,由硬件優先級決定誰先響應.但是硬件優先級不可打斷。也就是相同軟件優先級的中斷,硬件優先級低的中斷在執行了...此時來一個硬件優先級高的中斷是不可以打斷低優先級的中斷的。STM8還有個TLI外部中斷,這個優先級可以打斷軟件優先級為3的中斷,TLI的優先級不可設置.(基本就是最高級別了,除了RESET)。

總結:同時中斷看硬件優先級(向量表)
嵌套中斷的時候,應該看軟件優先級。(3是最高級)

 
注意:
設置優先級之前必須關閉中斷,否則會導致hard fault。
疑惑:
  • reference manual中有如下描述,MAIN, IT4, IT3, IT2, IT1, IT0, TRAP/TLI (same priority), and RESET但是不知道IT4等代表什么含義

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM