iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
自我挑戰組

MCU功能介紹與實作系列 第 16

Day 16: 中斷基本概念

  • 分享至 

  • xImage
  •  

什麼是中斷?

在嵌入式系統中,中斷是一個機制,用於處理各種外部事件或內部條件的發生。這些事件可以是來自硬體設備的訊號,例如按鈕按下、計時器計時完成,或是軟體內部的條件,如:數據溢出或滿足一些特定條件。當一個中斷事件發生時,MCU會中斷正在執行的程式,轉而執行相應的中斷服務程式(Interrupt Service Routine,ISR),處理該事件,然後繼續執行原來的程式。

中斷的類型

MCU支援多種不同類型的中斷,以下是一些常見的中斷類型:

外部中斷: 由外部硬體觸發的中斷,例如按鈕按下、感測器觸發等。

定時器中斷: 由MCU內部定時器計時完成時觸發,用於執行定時任務。

UART中斷: 用於處理串列通信中的數據接收或傳送完成事件。

ADC中斷: 用於類比數位轉換(ADC)完成時,通常用於讀取模擬數據。

內部中斷: 由MCU內部條件觸發的中斷,例如除以零的錯誤。

看門狗定時器中斷: 用於檢測系統錯誤並執行相應的動作。

中斷優先級

當多個中斷事件同時發生時,MCU需要確定哪個中斷應該首先處理。這就涉及到中斷優先級的概念。每個中斷都有一個優先級,通常是數字越小,優先級越高。當多個中斷事件同時發生時,MCU會首先處理優先級最高的中斷,然後再處理其他中斷,以此類推。

中斷向量表

為了執行正確的中斷服務程式,MCU需要知道每個中斷事件對應的ISR的位置。這些ISR的地址存儲在中斷向量表中,該表是一個特殊的數組,包含每個中斷的地址。當中斷事件發生時,MCU會根據中斷編號在中斷向量表中查找相應的地址,然後跳轉到該地址執行ISR。

中斷的使用

中斷在嵌入式系統中的應用非常廣泛,它們可以用於實現以下功能:

  1. 即時響應外部事件,ex:按鈕操作。
  2. 定時任務執行,ex:定時掃描感測器。
  3. 數據接收和傳送,ex:序列通訊。
  4. 系統錯誤檢測和處理。
  5. 省電模式,以降低功耗。

上一篇
Day 15: 計時器應用實例
下一篇
Day 17: 中斷控制器配置
系列文
MCU功能介紹與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言