STM8 中斷屏蔽和處理流程
中斷屏蔽是通過CC寄存器的位I1和位I0以及設置每個中斷向量(表13)的軟件優先級的ITC_SPRx來管理的。處理流程如圖17所示:
(表13:軟件優先級)
(圖17:中斷處理流程圖)
當一個中斷請求必須被響應時:
1.在當前正在執行指令結束之后,正常的操作被懸起;
2.PC,X,Y,A和CC寄存器被自動壓棧;
3.根據ITC_SPRx寄存器中的值對應的中斷服務向量,CC寄存器中的位I1和I0被相應設置;
4.通過中斷向量載入中斷服務子程序的入口地址,接著對中斷服務子程序的第一條指令取址(參考表16中斷映射表來了解向量地址的更詳細情況)。
中斷服務子程序必須以IRET指令結束,該指令會把堆棧中的保存的寄存器內容出棧,同時由于運行IRET指令,位I1和位I0被重新恢復,程序也恢復運行。
處理等待(排隊)的中斷
同一時間可以有幾個中斷排隊等待處理。中斷響應是根據如下兩步來決定的:
1. 最高軟件優先級的中斷被響應;
2. 如果幾個排隊的中斷具有相同的軟件優先級,那么最高硬件優先級的中斷先響應。
當中斷請求沒有立即得到響應時,該中斷請求被鎖存;當其軟件優先級及硬件優先級均為的時候,該中斷被處理。
注意:
與軟件優先級不同,每個中斷的硬件優先級是唯一且互不相同的,這樣就可保證一個時刻只有一個中斷被唯一確定地處理。
RESET,TLI和TRAP這個幾個中斷被認為是擁有最高的軟件優先級來處理。
一個TLI中斷可中斷除TRAP及RESET之外的3級中斷。見圖18了解更加詳細的排隊等待處理的中斷服務過程。
(圖18:優先級處理過程 )
中斷源
STM8中斷控制器處理2種類型的中斷源:
不可屏蔽的中斷:RESET,TLI和TRAP
可屏蔽中斷:外部中斷或者內嵌的外設中斷
STM8不可屏蔽中斷源
不可屏蔽中斷不會考慮CC寄存器的I1和I0的狀態(參見圖17)。僅僅當TRAP中斷發生時候將PC,X,Y,A和CC寄存器的內容壓棧。相應的向量載入到PC寄存器中同時置位I1和I0位禁止中斷(3級優先級)。TRAP(不可屏蔽的軟件中斷)
當執行TRAP指令時就響應軟件中斷。它響應過程如圖17所示的流程圖。
TRAP中斷不能使處理器從停機(Halt)模式下退出。RESET復位
復位中斷是STM8的軟件和硬件中斷的最高優先級,這也就是說在復位程序的開始所有的中斷被禁止。必須通過RIM指令來使能它們(見表15)。
復位中斷可以使處理器從停機(Halt)模式退出。
更詳細的復位中斷管理見復位章節。TLI最高等級的硬件中斷
當在特定的I/O邊沿檢測到在相應的TLI輸入時將產生硬件中斷。
注意:在TLI中斷服務子程序中禁止使用TRAP指令。
STM8可屏蔽的中斷源
對于可屏蔽中斷,如果相應的中斷被使能,而且如果在ITC_SPRx寄存器的中斷優先級比當前正在執行的中斷(根據CC寄存器的I1和I0位)的優先級高的話那么就可以被響應。如果上面2個條件中的任何一個不滿足那么該中斷會被鎖存并保持在等待狀態。
外部中斷
外部中斷可以用來把MCU從停機(Halt)模式喚醒。外部中斷觸發方式的選擇可以通過軟件寫控制外部中斷控制寄存器(EXTI_CRx)來實現。
當多個連接到同一個中斷向量的外部引腳中斷被同時選定時候,那么他們是'邏輯或'的關系。
當外部的電平觸發中斷被鎖存后,如果該給定的電平一直保持到中斷子程序結束,那么該電平信號將再次觸發中斷,除非在中斷子程序中禁用該中斷。外設中斷
大部分的外設中斷會導致MCU從停機(Halt)模式下喚醒。
當對應外設狀態寄存器的中斷標志位被置位,同時相應的外設控制寄存器的使能位被置位時將產生一個外設中斷。
清除一個STM8外設中斷的標準順序是在對狀態寄存器的訪問后再對相關寄存器進行讀或者寫操作。
當一個清除過程被執行之后相應的懸起中斷(一個將被執行的中斷)會丟失。
上一篇:STM8 中斷源
下一篇:STM8 中斷控制器(ITC)
推薦閱讀
史海拾趣
在電子行業的浪潮中,Codeco Corporation Of Vermont(以下簡稱Codeco)由幾位熱衷于科技創新的工程師創立。他們看到了電子產品日益普及的趨勢,決定投身這個充滿機遇的領域。初創時期,資金短缺、市場競爭激烈,Codeco面臨著巨大的挑戰。然而,憑借著對技術的執著追求和對市場的敏銳洞察,他們成功開發出了一款具有創新性的電子產品,迅速在市場上占得一席之地。
在快速發展的同時,港源公司始終不忘履行社會責任。公司秉承綠色環保、節能減排的理念,在生產經營活動中以預防為主、全員參與為行動綱領,防治污染、節廢減排。港源公司選用綠色環保RoHS材料,嚴格管控生產制造過程,確保生產出的產品符合國際環保標準。此外,公司還積極參與社會公益活動,為社會和諧發展貢獻自己的力量。
2000年3月,成都華微科技誕生。當時,集成電路設計行業剛剛起步,市場競爭激烈。然而,公司憑借對中國電子信息產業集團的堅定信任,以及對中國集成電路設計市場的深刻洞察,毅然決然地踏上了這條充滿挑戰的道路。初創期的華微科技,雖然規模較小,但團隊成員都懷揣著對技術的熱情和對未來的憧憬,為公司的長遠發展奠定了堅實的基礎。
隨著電子行業的全球化發展,BAND-IT公司也開始了其全球布局的步伐。作為IDEX Corporation的子公司,BAND-IT在全球范圍內建立了銷售和制造設施網絡,為全球客戶提供服務。其產品線不斷豐富和完善,涵蓋了從扎帶、扎扣到緊帶機、打包機等各類緊固解決方案。同時,BAND-IT公司還積極投入研發,不斷創新產品和技術,以適應電子行業日新月異的發展需求。在全球化的浪潮中,BAND-IT以其卓越的品質和創新能力,贏得了全球客戶的信賴和認可。
以上五個故事分別從初創挑戰、深海鉆探、太空探索、大型基礎設施建設以及全球布局等方面展現了BAND-IT公司在電子行業中的發展歷程。這些故事基于事實性的描述,旨在展示BAND-IT在電子行業中的發展和貢獻,不涉及主觀評價。
進入20世紀30年代,Hammond迎來了其發展歷程中的一個重要轉折點。在1930年代初,Hammond成為加拿大第一家生產兩柱式機架和窄柜系列產品的公司,這些產品迅速獲得了廣播和通訊行業的青睞。這一創舉不僅鞏固了Hammond在業內的地位,還為其后續在電氣、電子行業的全面發展鋪平了道路。
二戰后,隨著全球經濟的復蘇和電氣產品的爆炸性需求,Hammond迎來了前所未有的發展機遇。在1950年代和1960年代,Hammond積極擴展產品線,成為變壓器、機架、機柜以及電氣和電子行業外殼的領先供應商。同時,公司還進行了多次戰略性收購,進一步鞏固了其在北美電氣OEM市場的地位,成為磁性材料的主要供應商之一。
使用Nios II 9.1 SP1 SBTE的Flash Programmer的幾點注意事項.[Nios II] 自從Altera公司推出Nios II 9.1 Software Build Tools for Eclipse(簡稱Nios II 9.1 SBTE),許多新特性的引入,令眾多使用者感到欣慰,尤其是在編譯的速度上。但是Nios II 9.1 SBTE并不完美,譬如說無法調用用戶自定義外設的HAL文件、 ...… 查看全部問答∨ |
|
平臺 2440 系統 wince 5.0 芯片 TL16C554a 利用微軟的16550的代碼架構驅動16C554,通過修改pdd層,配置相關的注冊表項,目前系統已經可以加載4個串口了,利用調試軟件可以打開,關閉。由于擴展的4個串口目前不對外使用,為內部提 ...… 查看全部問答∨ |
最近在wince6.0上面開發flash R3包里面有個adobe flash lite activex control插件 是支持flash動畫的 這個插件應該對應一個API開發包吧 但我又不知道在哪里可以查到這個flash的api 所以沒辦法開發flash。請問大家在哪里,用關鍵字可以找到這個 ...… 查看全部問答∨ |
vc2005開發的智能設備ocx,如何改造能在pc(x86)下的智能設備應用中開發使用? 我快要瘋了 ,請高手詳細指點 vc2005開發的智能設備ocx,如何改造能在pc(x86)下的智能設備應用中開發使用? 我快要瘋了 ,請高手詳細指點… 查看全部問答∨ |
【招聘獵頭顧問】Researcher/Consultant Contact: MSN: hhlist0@hotmail.com Email: openymail@gmail.com Location: Beijing Title: Researcher/Consultant Responsibilies: 1.Executive searching,negotiation,delivery,maintenance for cl ...… 查看全部問答∨ |
我的電路板上的3.3v輸出lm1117芯片,實際輸出卻是4.2v 要是小于3.3v還好理解,怎么就會大于3.3伏呢,而且我換了一個片子還是輸出這么多, 但是同樣的1117芯片在另一塊不同設計的電路板上輸出是正常的。… 查看全部問答∨ |
最近在看這款芯片的USART,都看不懂,希望高手來教下我。我想通過電腦發送數據,然后在LCD上顯示接收數據哦。方便的話可以加下我的QQ707474097,期待高手們的幫助。… 查看全部問答∨ |