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