0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

聊聊一個(gè)關(guān)于TIMER事件觸發(fā)中斷的響應(yīng)話題

茶話MCU ? 來源:茶話MCU ? 2024-04-28 09:44 ? 次閱讀

這里有個(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ā)生比較事件。

7244d2a4-044b-11ef-a297-92fbcf53809c.png

而中心對(duì)齊計(jì)數(shù)模式2只有在向上計(jì)數(shù)過程中發(fā)生計(jì)數(shù)器與CCR值匹配時(shí)才產(chǎn)生比較事件并可以觸發(fā)中斷或DMA。見下圖示意。閃電箭頭表示發(fā)生比較事件。

726162ca-044b-11ef-a297-92fbcf53809c.png

中心對(duì)齊計(jì)數(shù)模式3則在向上和向下計(jì)數(shù)過程中發(fā)生計(jì)數(shù)器與CCR值匹配時(shí)都可以產(chǎn)生比較事件并觸發(fā)中斷或DMA。見下圖示意。閃電箭頭表示發(fā)生比較事件。

72832860-044b-11ef-a297-92fbcf53809c.png

第二,這里提到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ù)。

72a5ba10-044b-11ef-a297-92fbcf53809c.png

顯然,這里結(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ù)程序?



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一個(gè)GPIO如何配置成個(gè)外部中斷觸發(fā)

    1STM32中斷分組STM32 的每一個(gè)GPIO都能配置成個(gè)外部中斷觸發(fā)源,這點(diǎn)也是 STM3
    的頭像 發(fā)表于 01-25 08:44 ?1.6w次閱讀
    每<b class='flag-5'>一個(gè)</b>GPIO如何配置成<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>外部<b class='flag-5'>中斷</b><b class='flag-5'>觸發(fā)</b>源

    利用TIMER事件和棧幀體驗(yàn)中斷響應(yīng)

    對(duì)于這幾個(gè)中斷響應(yīng)的概念,我們是否可以比較直觀地感受下呢?
    的頭像 發(fā)表于 11-05 16:45 ?710次閱讀
    利用<b class='flag-5'>TIMER</b>事件和棧幀體驗(yàn)<b class='flag-5'>中斷</b><b class='flag-5'>響應(yīng)</b>

    聊聊TIMER事件觸發(fā)中斷響應(yīng)話題

    情況是這樣的,現(xiàn)在使用STM32G4系列的TIM8,工作在中心對(duì)齊計(jì)數(shù),PWM單脈沖模式,使用內(nèi)部系統(tǒng)時(shí)鐘做時(shí)鐘源,計(jì)數(shù)時(shí)不做分頻,即PSC=0。CH2做PWM輸出。
    的頭像 發(fā)表于 05-06 16:07 ?775次閱讀
    <b class='flag-5'>聊聊</b><b class='flag-5'>TIMER</b>事件<b class='flag-5'>觸發(fā)</b><b class='flag-5'>中斷</b>的<b class='flag-5'>響應(yīng)</b><b class='flag-5'>話題</b>

    請(qǐng)問28027用timer0觸發(fā)ADC,無法進(jìn)入timer0中斷是為什么?如何解決?

    本帖最后由 只耳朵怪 于 2018-6-14 11:15 編輯 單獨(dú)用timer0能夠進(jìn)入中斷,在中斷中我設(shè)置了
    發(fā)表于 06-14 00:10

    TM4C,TIMER觸發(fā)ADC配制方法直進(jìn)不去中斷

    TIMER觸發(fā)ADC配制方法直進(jìn)不去中斷,麻煩看看有沒有問題呢,用ADC_TRIGGER_PROCESSOR方式可以進(jìn)中斷,ADC_TRI
    發(fā)表于 08-14 07:33

    請(qǐng)問F28377S調(diào)用多個(gè)中斷時(shí)為什么只能響應(yīng)個(gè)中斷

    采用F28377S芯片,調(diào)用INT1.1和INT1.7兩個(gè)中斷,如果兩個(gè)都打開,卻只能響應(yīng)INT1.7,即TIMER0,只有關(guān)閉了INT1.7,才能
    發(fā)表于 11-30 15:10

    觸發(fā)中斷時(shí)會(huì)調(diào)用對(duì)應(yīng)的中斷函數(shù)

    當(dāng)觸發(fā)中斷時(shí)會(huì)調(diào)用對(duì)應(yīng)的中斷函數(shù) 例如定時(shí)器2中斷: TIM2_IRQHandler(void) HAL 庫中對(duì)中斷的類型進(jìn)行了分類處理,每
    發(fā)表于 08-13 07:58

    Linux中斷(interrupt)子系統(tǒng)之:軟件中斷(softIRQ)

    軟件中斷(softIRQ)是內(nèi)核提供的種延遲執(zhí)行機(jī)制,它完全由軟件觸發(fā),雖然說是延遲機(jī)制,實(shí)際上,在大多數(shù)情況下,它與普通進(jìn)程相比,能得到更快的響應(yīng)時(shí)間。軟
    發(fā)表于 05-13 10:33 ?1229次閱讀

    聊聊關(guān)于架構(gòu)的話題

     技術(shù)需要架構(gòu),芯片的架構(gòu),軟件需要架構(gòu),公司需要架構(gòu),建筑需要架構(gòu),產(chǎn)品需要架構(gòu),人也需要架構(gòu),聊聊架構(gòu)的話題。
    的頭像 發(fā)表于 09-28 02:48 ?2163次閱讀

    C51單片機(jī)外部中斷觸發(fā)方式

    中斷后,會(huì)硬件將IE清0(IE=0),但是不會(huì)取消掉外部中斷引腳的低電平,因此需要硬件加軟件清除低電平(p133)2. 下降沿觸發(fā)方式 ○ CPU采樣外部中斷的引腳電平 ○ 如果
    發(fā)表于 11-19 12:06 ?90次下載
    C51單片機(jī)外部<b class='flag-5'>中斷</b>的<b class='flag-5'>觸發(fā)</b>方式

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

    外部中斷可以分為電平觸發(fā)和邊緣觸發(fā)兩種,那么這兩種中斷有什么區(qū)別,我們今天講解下1什么是中斷CPU在處理某
    發(fā)表于 11-22 15:51 ?11次下載
    "外部<b class='flag-5'>中斷</b>----高低電平<b class='flag-5'>觸發(fā)</b>,(邊沿<b class='flag-5'>觸發(fā)</b>)上升沿<b class='flag-5'>觸發(fā)</b>和下降沿<b class='flag-5'>觸發(fā)</b>區(qū)別"

    關(guān)于GD32F330單片機(jī)定時(shí)器中斷初始化后立即進(jìn)入中斷問題

    現(xiàn)象:通過插入硬件輸出片段觀察到定時(shí)器更新后10us左右進(jìn)入了定時(shí)器中斷,而該定時(shí)器設(shè)置中斷時(shí)間為100us,明顯不對(duì)原因:定時(shí)器使能時(shí)中斷標(biāo)志觸發(fā),允許
    發(fā)表于 12-02 16:06 ?20次下載
    <b class='flag-5'>關(guān)于</b>GD32F330單片機(jī)定時(shí)器<b class='flag-5'>中斷</b>初始化后立即進(jìn)入<b class='flag-5'>中斷</b>問題

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

    一個(gè)TIMER都可以配置定時(shí)器溢出中斷。使能溢出中斷,計(jì)數(shù)器溢出會(huì)觸發(fā)中斷操作。
    發(fā)表于 02-08 15:49 ?0次下載
    MCU之<b class='flag-5'>TIMER</b>精準(zhǔn)延時(shí)(二)

    華芯微特MCU之TIMER觸發(fā)ADC

    華芯微特MCU之TIMER觸發(fā)ADC
    的頭像 發(fā)表于 09-27 16:21 ?730次閱讀
    華芯微特MCU之<b class='flag-5'>TIMER</b><b class='flag-5'>觸發(fā)</b>ADC

    什么是中斷響應(yīng)次序?什么是中斷處理次序?

    什么是中斷響應(yīng)次序?什么是中斷處理次序? 中斷響應(yīng)次序和中斷處理次序是計(jì)算機(jī)系統(tǒng)中非常重要的概念
    的頭像 發(fā)表于 10-24 11:49 ?2014次閱讀