吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

統計信號連接到定時器的兩種模式

lhl545545 ? 來源:ST MCU 信息交流 ? 作者:ST MCU 信息交流 ? 2020-06-08 09:18 ? 次閱讀

有人使用STM32芯片開發產品,其中有個功能就是統計某外部信號脈沖個數。他采用外部中斷方式,來一個信號觸發一次中斷,在中斷程序里實現計數累加。但由于被統計的信號頻率較高,而中斷本身也是需要時間的,往往導致有些脈沖沒被統計而發生丟數的問題。況且,CPU這樣頻繁地去響應中斷還會衍生出其它系統性問題。

他咨詢是否可以將該信號作為定時器時鐘源,每來一個脈沖信號計數器就自動加1。這樣的話,用戶適時去讀取計數器的值即可。若有,如何實現?

對于這種情況,我們可以將被統計信號連接到定時器的ETR腳,并作為定時器的計數時鐘。開啟定時器更新中斷對溢出次數進行統計,擇時讀取計數器的值和溢出次數即可。這樣既避免了CPU頻繁進中斷而無法應對別的事情的困境,也避免了因CPU優先忙于別的事情而來不及響應外部中斷導致計數出錯的麻煩。

對于STM32來講,從ETR腳引入時鐘信號,可以有兩種模式。

統計信號連接到定時器的兩種模式

第一種模式,即外部時鐘1模式,此時來自ETR腳的信號經過濾波、邊沿檢測和極性選擇后,以觸發信號的角色連接到從模式控制器,并作為定時器的時鐘源,即上圖中的1路。

第二種模式,即外部時鐘2模式,來自ETR腳的時鐘信號經過極性選擇、分頻、濾波后不經過從模式控制器,而是像內部時鐘源一樣直接為計數器提供計數時鐘,即上圖中的2路。

現在分別以上面提到的兩種模式演示定時器對來自ETR腳的時鐘信號進行計數的過程。這里以STM32F411 Nucleo開發板來進行實驗。

TIM1_CH1模擬產生某頻率的PWM脈沖信號,將其通過跳線連接到ETR腳。為便于測量和演示,讓TIM1工作在單脈沖PWM模式,結合RCR寄存器輸出指定個數的脈沖。使用TIM3對來自ETR腳的時鐘信號進行計數,同時開啟TIM3更新中斷對溢出次數進行統計。

讓TIM1-CH1啟動后輸出248個脈沖后停下來,而TIM3每統計200個脈沖就產生溢出,即令TIM3_ARR值等于199。

現在使用STM32CUBEMX進行基本的配置。

先對用來模擬產生外來脈沖信號的TIM1進行配置。做些基本的時基配置即可。

然后對TIM3進行配置,時鐘來自ETR腳,工作在外部時鐘模式2。

將時鐘、NVIC等配置完畢后即可生成初始化代碼。

定義變量CNT_Update記錄TIM3的溢出次數。基于STM32Cube 庫稍加組織代碼即可查看結果。

統計信號連接到定時器的兩種模式

統計信號連接到定時器的兩種模式

編譯運行查看結果:

TIM3發生溢出1次,結合上面配置可知其對應的脈沖個數為200,此時計數器里的值為0x30,即48,總共248個脈沖,跟TIM1_CH1輸出的248個脈沖數相同。

上面的實驗是基于TIM3工作在ETR外部時鐘模式2,我們不妨再看看基于外部時鐘模式1的情況。現在只需對TIM3的時鐘配置稍作調整,其它參數不動。

生成初始化代碼后,基于前面組織的用戶代碼不做任何調整即可編譯運行驗證。

統計信號連接到定時器的兩種模式

上面驗證結果與外部時鐘模式2完全相同,跟TIM1_CH1輸出的脈沖數完全吻合。

從上面示例來看,當時鐘信號來自ETR腳時,不論使用外部時鐘模式1還是外部時鐘模式2,都可以實現完全相同的結果。那么基于同一個時鐘源,為什么弄出2個時鐘模式呢?

首先,定時器本身支持多鐘時鐘模式,其中包括外部時鐘模式1與外部時鐘模式2。只不過來自ETR腳的時鐘信號既可以工作外部時鐘模式1,也可以工作在外部時鐘模式2。

外部時鐘模式1的主要特點是時鐘信號還同時兼具觸發信號的角色,此時定時器也一定工作在從模式,這個從模式就是外設時鐘模式1從模式。STM32參考手冊關于這個模式,在講解定時器主從連接的相關實例時進行過介紹,但沒有將其跟復位從模式、觸發從模式等從模式一起單列出來進行介紹。我們在用STM32CubeMX進行配置時也可以發現有個從模式選項就是外部時鐘1從模式。

前面也提到了,外部時鐘模式1下的時鐘除了做時鐘外,還做觸發信號。基于這個觸發信號可以產生觸發事件,從而觸發中斷或產生DMA請求。而外部時鐘模式2就是特指來自ETR腳的時鐘,只是個純粹的時鐘,不具備觸發功能。但是,選擇外部時鐘模式2的定時器,既可以工作在主模式,也可以工作在諸如復位/觸發/門控等從模式。

另外,作為外部時鐘模式1的時鐘,它可以有多個來源,除了ETR腳外,還可以是TI1、TI2輸入腳或者其它定時器的觸發輸出,而工作在外部時鐘模式2的時鐘只能來自ETR腳。顯然,基于開篇的客戶需求,它的被測信號還可以接到別的特定管腳上來處理。

最后做點提醒。基于上面應用,弄清實現原理后,自行組織用戶代碼應該說非常簡單了。不過,即使這樣,可能還是會有不少人在有個地方出問題,就是沒有下圖中那句對TIM3的更新事件標志進行清零的代碼。很多場景,這行代碼可有可無。當遇到目前這種應用時,就不能可有可無了。

統計信號連接到定時器的兩種模式

基于上面的程序邏輯,如果沒有這句代碼會發生統計所得的溢出次數與實際溢出次數多1的狀況。以上面應用為例,我什么都不改動,只將那行代碼注釋掉,運行結果會變成下面的樣子。計數器里的值雖然還是48,但溢出次數變成2了!

統計信號連接到定時器的兩種模式

像這種需要統計精確數據的情形,發生這種問題往往就難以接受。為什么要加這句代碼呢?如果不加這句代碼怎么會導致統計到的溢出次數平白無故多1次呢?

關于這點可以自行思考下,在此不延申解釋了。也可以參考下面文章《STM32定時器中的更新操作與更新事件》的結尾部分,那里有就該問題做些分析。
責任編輯:pj

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 信號
    +關注

    關注

    11

    文章

    2804

    瀏覽量

    77100
  • STM32芯片
    +關注

    關注

    0

    文章

    38

    瀏覽量

    4424
收藏 人收藏

    評論

    相關推薦

    詳解CKS32F107xx系列的定時器同步功能

    CKS32F107xx系列部分定時器在內部是相連的,可用于定時器同步或鏈接,方便用戶配置不同的同步模式,以便在電機控制、數據采集和PWM信號生成等應用中,實現復雜的時間序列和多通道的同
    的頭像 發表于 11-26 17:51 ?504次閱讀
    詳解CKS32F107xx系列的<b class='flag-5'>定時器</b>同步功能

    高級定時器PWM輸入模式的配置方法

    我們將向大家介紹高級定時器的另一個常見應用——PWM輸入模式。在本節課中,我們將先圍繞輸入捕獲模式展開,并重點描述PWM輸入模式和涉及的寄存
    的頭像 發表于 11-08 16:48 ?2788次閱讀
    高級<b class='flag-5'>定時器</b>PWM輸入<b class='flag-5'>模式</b>的配置方法

    噪聲傳導的兩種模式

    噪聲傳導有兩種模式,一為差模傳導,一為共模傳導。
    的頭像 發表于 10-15 11:33 ?381次閱讀
    噪聲傳導的<b class='flag-5'>兩種</b><b class='flag-5'>模式</b>

    紅石比較兩種模式的作用

    紅石比較是Minecraft中的一非常重要的紅石元件,它用于比較個紅石信號的強度,并根據比較結果輸出不同的信號強度。比較
    的頭像 發表于 09-05 09:17 ?659次閱讀

    定時器的基本組成和工作模式

    定時器是計算機或電子設備中常見的一個硬件或軟件組件,其主要功能是測量和控制時間的流逝。它在各種應用中起著至關重要的作用,如操作系統調度、多媒體播放、網絡通信、工業自動化控制以及家電設備的定時功能等。定時器的工作原理基于時序控制,
    的頭像 發表于 08-19 18:28 ?1612次閱讀

    plc與傳感兩種連接方式

    在工業自動化領域,PLC(可編程邏輯控制)與傳感連接是實現自動化控制的關鍵環節。本文將詳細介紹PLC與傳感兩種主要
    的頭像 發表于 07-25 09:36 ?1681次閱讀

    三相負載的連接方式有哪兩種

    三相負載的連接方式主要有星形連接(Y連接)和三角形連接(Δ連接兩種。這
    的頭像 發表于 07-17 10:33 ?5323次閱讀

    定時器的工作方式介紹

    定時器是計算機和嵌入式系統中常見的一硬件模塊,用于實現定時和計數功能。定時器的工作方式通常由一組寄存來控制,這些寄存
    的頭像 發表于 07-12 10:29 ?1126次閱讀

    定時器相關的寄存有哪些類型

    在微控制編程中,定時器是一非常常見的功能模塊,用于實現各種定時和計數功能。定時器的工作原理是通過內部的計數
    的頭像 發表于 07-12 10:25 ?1077次閱讀

    時間繼電器與定時器的區別

    在工業自動化和電子設備控制領域,時間繼電器和定時器兩種常見的控制元件。它們都能夠實現電路的時間控制功能,但在設計原理、應用場景、控制精度等方面存在顯著的差異。本文將對時間繼電器和定時器進行詳細的分析和比較,以期為讀者在選擇和使
    的頭像 發表于 06-21 18:18 ?1326次閱讀

    s7200定時器的五故障介紹

    定時器或CPU故障:如果定時器本身或PLC的CPU出現故障,也可能導致定時器無法復位。此時,需要檢查定時器和CPU的工作狀態,確保其正常運行。
    的頭像 發表于 04-03 17:08 ?2671次閱讀

    stm32主從定時器門控模式,怎么控制在不產生PWM時從定時器cnt不要計數?

    stm32主從定時器,采用門控模式,主定時器用單脈沖模式控制輸出。但是我在實驗的時候發現其從定時器cnt在主
    發表于 03-12 07:08

    使用555定時器的可調雙定時器電路

    等。使用555定時器IC的可調雙定時器電路項目也是555定時器IC的應用之一。通過使用這個項目,人們可以一個接一個地切換個不同的設備,以調整時間(1分鐘到 10 分鐘)。
    的頭像 發表于 02-25 15:16 ?2421次閱讀
    使用555<b class='flag-5'>定時器</b>的可調雙<b class='flag-5'>定時器</b>電路

    變頻兩種無速度傳感矢量控制模式有什么區別?

    在變頻控制模式中,有無速度矢量傳感模式,該模式又分為兩種,無感矢量0和無感矢量1,這
    發表于 02-22 21:45

    國產嵌入式教學實驗箱操作教程:2-13 定時器控制實驗

    計數的count,如果用作定時就是先輸入一個數字,然后在來了一個時鐘之后count自動減一。如果用成計數就是在一個脈沖到來之后count自動加一。 (3)看門狗 一些定時器設計有信號連接到
    發表于 02-21 14:09
    JJ百家乐官网的玩法技巧和规则 | 大发888游戏官方下载客户端| 鸿利国际娱乐城| 真人百家乐官网平台下载| 蓝盾百家乐官网赌城| 百家乐最新产品| 在线棋牌游戏平台| 玩百家乐官网新澳门娱乐城| 百家乐玩法与规则| 大发888账号申请| 百家乐官网多少点数算赢| 百家乐官网大路小路三珠路| 百家乐高命中打法| 太阳城代理| 至尊百家乐官网赌场娱乐网规则 | 有看做生意风水的大师吗| 威尼斯人娱乐网最新地址| 通州区| 百家乐玩法简介| 大发888游戏平台 df888ylcxz46| 百家乐官网路单网下载| 波音百家乐网上娱乐| bet365娱乐场下载| 百家乐官网玩法规| 威尼斯人娱乐城真人赌博| 网上百家乐官网有假的吗| 至尊百家乐停播| 大发888官方备用| 利都百家乐官网国际娱乐网| 百家乐号破| 百家乐官网玩法开户彩公司| 百家乐群1188999| 在线真人娱乐城| 顶尖百家乐开户| 大发888王博被带走| 青鹏百家乐官网游戏币| 百家乐必胜方法如果你还想继续不看可能后悔一生 | 豪盈国际娱乐| 做生意 风水| 皇冠网| 7人百家乐桌布|