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