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

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

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

MCU之TIMER精準(zhǔn)延時(shí)(二)

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

評論