接著上次的TIMER事件觸發(fā)中斷的響應(yīng)話題繼續(xù)聊聊。
情況是這樣的,現(xiàn)在使用STM32G4系列的TIM8,工作在中心對齊計數(shù),PWM單脈沖模式,使用內(nèi)部系統(tǒng)時鐘做時鐘源,計數(shù)時不做分頻,即PSC=0。CH2做PWM輸出。啟動時計數(shù)器從0開始計數(shù),與RCR對應(yīng)的計數(shù)器值為3。請問在0~ARR范圍內(nèi)調(diào)整CCR的值時,整個工作周期內(nèi)進入基于通道比較事件的中斷響應(yīng)次數(shù)可能是下面哪些選項?
A:1 B:2 C:3 D:4 E:0
因為RCR=3和單脈沖模式。意味著從啟動開始到計數(shù)停止,發(fā)生4次溢出后產(chǎn)生更新事件并停止計數(shù),計數(shù)器剛好工作2個完整的計數(shù)周期。
如果說將通道比較事件的中斷請求使能禁用掉或者將NVIC端與該事件有關(guān)的中斷響應(yīng)使能禁用掉,自然不會發(fā)生針對通道1比較事件的中斷響應(yīng)。從這個角度講,選擇E就很自然了。現(xiàn)在假設(shè)針對通道比較事件的中斷請求以及NVIC端的中斷響應(yīng)允許都使能了,那還可能有哪些情形呢?有沒有可能一次比較中斷響應(yīng)都不發(fā)生呢?
其實是可能的。
前面說過,STM32 TIMER采樣中心對齊計數(shù)模式的話,又分三種計數(shù)模式【具體解讀見前文《一個基于TIMER事件的中斷響應(yīng)話題》】。如果TIMER采樣中心對齊計數(shù)模式1,且CCR=0時,是不會發(fā)生比較事件的,自然不會有相應(yīng)的中斷響應(yīng)發(fā)生。
有沒有可能在當(dāng)前計數(shù)周期內(nèi)只發(fā)生2次中斷響應(yīng)呢?這里有兩種情況:
第一種情況,定時器工作在中心對齊計數(shù)模式1或模式2,CCR在(0,ARR)之間取值,則在一個周期內(nèi)只發(fā)生1次比較事件,整個計數(shù)周期【這里就是2個計數(shù)周期】則僅發(fā)生2次比較事件,自然可以發(fā)生2次中斷響應(yīng)。
第二種情況,定時器工作在任一中心對齊計數(shù)模式,CCR取不小于ARR的值,這時每個計數(shù)周期僅發(fā)生1次比較事件,整個計數(shù)周期發(fā)生2次比較事件,進而發(fā)生兩次中斷響應(yīng)。
顯然,如果采用中心對齊計數(shù)模式3,即在向上計數(shù)和向下計數(shù)過程中都可以產(chǎn)生比較事件,CCR在(0,ARR)之間取值時,發(fā)生4次中斷響應(yīng)就不難理解了。
經(jīng)過前面的分析,我們知道發(fā)生0次、2次、4次中斷響應(yīng)都是可能的。那么,只發(fā)生1次或3次中斷響應(yīng)有無可能呢?
這里的條件對ARR和CCR的值并未具體說明,中斷響應(yīng)持續(xù)時間也未明確。那么,即使定時器采用中心對齊模式3,中斷響應(yīng)次數(shù)一定就是4次嗎?未必。
這里使用STM32G474的TIM8來進行驗證,定時器計數(shù)時鐘與主頻170MHz一致,不做計數(shù)分頻。設(shè)定RCR=3,CCR=2000,ARR=4000.
我們可以通過調(diào)整中斷服務(wù)程序持續(xù)時間,在上述TIMER時基參數(shù)不變的情況下讓比較中斷只進2次或3次。見下面圖示:
有沒有可能即使在中心對齊模式3條件,整個計數(shù)周期內(nèi)只發(fā)生一次中斷響應(yīng)呢?其實也是可能的。我們可以調(diào)整TIMER的時間參數(shù),讓比較事件的觸發(fā)足夠近并令中斷服務(wù)程序也持續(xù)一定的時間,即使發(fā)生4次比較事件,完全可能最終只進1次比較中斷服務(wù)程序。見下面測試結(jié)果示意圖:【ARR=3,CCR=2,中心對齊模式3】
看來,前面提到的5種結(jié)果都是可能的。
審核編輯:劉清
-
計數(shù)器
+關(guān)注
關(guān)注
32文章
2291瀏覽量
96355 -
RCR
+關(guān)注
關(guān)注
0文章
2瀏覽量
6901 -
PWM輸出
+關(guān)注
關(guān)注
1文章
66瀏覽量
6397 -
中斷響應(yīng)
+關(guān)注
關(guān)注
0文章
11瀏覽量
3126
原文標(biāo)題:一個基于TIMER事件的中斷響應(yīng)話題_續(xù)
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
【創(chuàng)龍TMS320C6748開發(fā)板試用】+ Timer配置 + Timer觸發(fā)中斷 + GPIO控制LED閃爍
請問28027用timer0觸發(fā)ADC,無法進入timer0中斷是為什么?如何解決?
TM4C,TIMER觸發(fā)ADC配制方法一直進不去中斷
請問怎樣對單片機邊沿觸發(fā)中斷的響應(yīng)時刻進行測量?
基于TIMER中斷模式秒中斷定時的設(shè)計實現(xiàn)
Linux中斷(interrupt)子系統(tǒng)之一:軟件中斷(softIRQ)
聊聊關(guān)于架構(gòu)的話題
C51單片機外部中斷的觸發(fā)方式

"外部中斷----高低電平觸發(fā),(邊沿觸發(fā))上升沿觸發(fā)和下降沿觸發(fā)區(qū)別"

微機原理——8086中斷類型以及中斷向量表、中斷響應(yīng)、中斷返回

什么是中斷響應(yīng)次序?什么是中斷處理次序?
聊聊一個關(guān)于TIMER事件觸發(fā)中斷的響應(yīng)話題

評論