這里有個關于TIMER事件觸發中斷的響應話題,我們一起聊聊。
情況是這樣的,現在使用STM32G4系列的TIM8,工作在中心對齊計數,單脈沖PWM模式,使用內部系統時鐘做時鐘源,計數時不做分頻,即PSC=0。CH1做PWM輸出。
啟動時計數器從0開始計數,與RCR對應的計數器值為3。請問在0~ARR范圍內調整CCR1的值時,整個工作周期內進入基于比較事件的中斷響應次數可能是下面哪些選項?
A:1 B:2 C:3 D:4 E:0
要回答上面問題,我們需厘清或注意幾個小細節。
第一,這里只說采用中心對齊計數模式,實際上STM32 TIMER的中心對齊計數有三種模式,其模式1只有在向下計數過程中發生計數器與CCR值匹配時才產生比較事件并可以觸發中斷或DMA。見下圖示意。閃電箭頭表示發生比較事件。
而中心對齊計數模式2只有在向上計數過程中發生計數器與CCR值匹配時才產生比較事件并可以觸發中斷或DMA。見下圖示意。閃電箭頭表示發生比較事件。
中心對齊計數模式3則在向上和向下計數過程中發生計數器與CCR值匹配時都可以產生比較事件并觸發中斷或DMA。見下圖示意。閃電箭頭表示發生比較事件。
第二,這里提到RCR=3和單脈沖模式。意味著從啟動開始到計數停止。計數器剛好工作2個完整的計數周期,因為RCR=3對應4次計數溢出,4次溢出后產生更新事件并停止計數。
顯然,這里結合第一點的提醒,我們不難得出可能發生的比較事件及相應中斷響應次數的情況。不過,我這里還有第3點提醒。
第三,條件里說CCR在0~ARR范圍變動,我們有必要對CCR=0和CCR=ARR時情況結合不同中心對齊計數模式來考慮。
第四,條件里對ARR和CCR的值并未具體說明,中斷響應持續時間也未明確出來,這些會不會增加其它可能性呢?
那么以你的理解,結合開篇的條件和上面提醒,你認為可能出現哪些情形呢?即基于TIMER比較事件可能發生幾次中斷響應?或者說可能進入幾次比較中斷服務程序?
審核編輯:劉清
-
STM32
+關注
關注
2266文章
10871瀏覽量
354789 -
計數器
+關注
關注
32文章
2253瀏覽量
94351 -
觸發中斷
+關注
關注
0文章
11瀏覽量
6559 -
PWM輸出
+關注
關注
1文章
66瀏覽量
5121
原文標題:一個基于TIMER事件的中斷響應話題
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論