事件是中斷的觸發源,開放了對應的中斷遮蔽位,則事件可以觸發相應的中斷。
事件還是其它一些操作的觸發源,比如dma,還有tim中影子暫存器的傳遞與更新;
簡單點就是中斷一定要有中斷服務函式,但是事件卻沒有對應的函式.
但是事件可以觸發其他關聯操作,比如觸發dma,觸發adc取樣等.
可以在不需要cpu干預的情況下,執行這些操作.
中斷則必須要cpu介入.
看看下面這個圖:
中斷和事件的產生源都可以是一樣的!
之所以分成2個部分,由於中斷是需要cpu參與的,需要軟體的中斷服務函式才能完成中斷後產生的結果;
但是事件,是靠脈衝發生器產生乙個脈衝,進而由硬體自動完成這個事件產生的結果,當然相應的聯動部件需要先設定好,比如引起dma操作,ad轉換等;
簡單舉例:外部i/o觸發ad轉換,來測量外部物品的重量;
如果使用傳統的中斷通道,需要i/o觸發產生外部中斷,外部中斷服務程式啟動ad轉換,ad轉換完成中斷服務程式提交最後結果;
要是使用事件通道,i/o觸發產生事件,然後聯動觸發ad轉換,ad轉換完成中斷服務程式提交最後結果;
相比之下,後者不要軟體參與ad觸發,並且響應速度也更塊;
要是使用事件觸發dma操作,就完全不用軟體參與就可以完成某些聯動任務了。
可以這樣簡單的認為,事件機制提供了乙個完全有硬體自動完成的觸發到產生結果的通道,不要軟體的參與,降低了cpu的負荷,節省了中斷資源,提高了響應速度(硬體總快於軟體),是利用硬體來提公升cpu晶元處理事件能力的乙個有效方法
2 事件與中斷
事件:是表示檢測到某一動作(電平邊沿)觸發事件發生了。
中斷:有某個事件發生並產生中斷,並跳轉到對應的中斷處理程式中。
事件可以觸發中斷,也可以不觸發
中斷有可能被更優先的中斷遮蔽,事件不會
事件本質上就是乙個觸發訊號,是用來觸發特定的外設模組或核心本身(喚醒).
事件只是乙個觸發訊號(脈衝),而中斷則是乙個固定的電平訊號
通過上圖的表示,可以明顯看出,藍色是中斷發生,紅色是事件發生,從一到三兩者線路是相同的,然後兩者分開,上公升沿和下降沿用來選擇電平方式,中斷和事件遮蔽暫存器起到相應的開關作用,軟體中斷/事件暫存器只要為1對後面的線路都有作用,掛起請求暫存器主要記錄電平變化!
STM32之中斷與事件 中斷與事件的區別
這張圖是一條外部中斷線或外部事件線的示意圖 圖中訊號線上劃有一條斜線 旁邊標誌 19字樣的注釋 表示這樣的線路共有19套 圖中的藍色虛線箭頭 標出了外部中斷訊號的傳輸路徑 首先外部訊號從編號 1的晶元管腳進入 經過編號 2的邊沿檢測電路 通過編號 3的或門進入中斷掛起請求暫存器 最後經過編號 4的與...
STM32之中斷與事件 中斷與事件的區別
這張圖是一條外部中斷線或外部事件線的示意圖 圖中訊號線上劃有一條斜線 旁邊標誌 19字樣的注釋 表示這樣的線路共有19套 圖中的藍色虛線箭頭 標出了外部中斷訊號的傳輸路徑 首先外部訊號從編號 1的晶元管腳進入 經過編號 2的邊沿檢測電路 通過編號 3的或門進入中斷掛起請求暫存器 最後經過編號 4的與...
STM32之中斷與事件 中斷與事件的區別
本文主要介紹stm32中中斷與事件的區別。圖 中斷與事件處理框圖 這張圖是一條外部中斷線或外部事件線的示意圖,圖中訊號線上劃有一條斜線,旁邊標誌19字樣的注釋,表示這樣的線路共有19套.圖中的藍色虛線箭頭,標出了外部中斷訊號的傳輸路徑 2.1 中斷路徑 首先外部訊號從編號1的晶元管腳進入 經過編號2...