在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

如何利用外部中斷和定時器測量信號頻率

GReq_mcu168 ? 來源:玩轉單片機 ? 作者:玩轉單片機 ? 2020-12-22 16:42 ? 次閱讀

摘要:利用定時器產生PWM波。然后利用32的外部中斷和定時器來測量32輸出的波形硬件:STM32F103C8T6核心板、示波器、串口調試助手所用到的的引腳為PA8和PA0。測量方案:在第一次外部中斷(上升沿觸發)到之時,開啟定時器,同時計數器清零。

然后等待第二次中斷到來,在第二次外部中斷(上升沿觸發)到之時,獲取計數器的計數值,同時關閉計數器。因為知道了計數器計數一個數的時間,所以在第二次外部中斷(上升沿觸發)到之時,獲取計數器的計數值,通過這個值就知道一個脈沖的時間周期。時間周期的倒數就是外部信號的頻率。

一、利用TIM1的CH1產生PWM波

pwm.c

pIYBAF_hsaSAQGuFAAE6ludMWJY825.jpg

pwm.h

pIYBAF_hsbeAYdbyAAAY5I0_Ip0776.jpg

main.c

o4YBAF_hsc2AIZqLAAAY5I0_Ip0616.jpg



定時器1的通道1對應的是PA8引腳,連接示波器可以測出波形

二、將PA8與PA0相連接

這里利用PA8輸出的PWM波形讓PA0外部中斷引腳測量。

三、外部中斷和定時器測量頻率

在配置定時器時最重要的就是配置定時器的預分頻系數和重裝載值。定時器的本質就是一個計數器,計數到我們設定的值后就會溢出,也就是重新從0開始開始計數。設置預分頻系數就是設置計數器的頻率,假設為71,F1的系統時鐘為72M,經過72分頻,給計數器的時鐘頻率就是1M,周期就是1/1M=1us。也是就1us計一個數。那么計幾個數呢?這就要看重裝載值ARR,這里我們設置為0XFFFF,也就是計數65536個數,就是計滿整個寄存器的值。為什么要分頻系數為72,重裝載值為0XFFFF?這里給出詳細的分析過程。

1 為什么要分頻系數為72 F1的系統時鐘為72M,F1的系統時鐘為72M,如果不分頻的話,提供給定時器的時鐘就直接是72MHZ。72MHz是個什么概念?72MHz它對應的周期就是(1/72000000)秒,也就是計數器從0計數到最大值65535,只需要花費(65535/72000000)秒≈1ms。

這句話的意思就是如果你不分頻,計數器最大只能定時1ms。那么你的定時器每隔1ms就會溢出一次。如果經過72分頻,給計數器的時鐘頻率就是1M,周期就是1/1M=1us,也是就1us計一個數。換句話就是可以采樣的波形頻率為1M,提高了采樣頻率。另一方面也是容易計算,計一個數1us,計count個數就是count個us,頻率就是1000000/count(HZ)。

2 為什么要重裝載值為0XFFFF 最大采樣間隔是跟定時器的中斷間隔相關的,定時器產生溢出中斷后計數值CNT會自動清0,定時器的中斷間隔由分頻系數Prescaler和自動重裝載寄存器Period決定,分頻系數前面已經確定,那最大采樣間隔只需要考慮自動重裝載寄存器Period的設置。

比如頻分析系數71,自動重裝寄存器值65535,則中斷間隔=65536/72000000/72=65.536ms,即最大采樣間隔65.536ms,如果65.536ms內沒有檢測到一個脈沖,則這么設定間隔是不合理的,必須想辦法犧牲最小的采樣時間1us(擴大分頻系數)或者擴大自動重裝寄存器值(16位<65535)來增加定時器中斷間隔,也可以編寫自己的應用函數來計算溢出的定時時間。

一般來說我們使用外部中斷是不需要用到定時器的,看原子和野火的外部中斷實驗也沒有用到外部中斷。但是現在不是利用外部中斷簡單的處理一件事,而是利用外部中斷測量頻率,而測頻率就涉及到時間,而只要涉及到時間,就需要用到定時器了。測量外部信號的頻率,就是測量PWM波對吧!

如果我們測量到一個周期的時間,那么不就知道了信號的頻率了嗎?測量方案:在第一次外部中斷(上升沿觸發)到之時,開啟定時器,同時計數器清零。然后等待第二次中斷到來,在第二次外部中斷(上升沿觸發)到之時,獲取計數器的計數值,關閉計數器。因為我們知道了計數器計數一個數的時間,所以我們到在第二次外部中斷(上升沿觸發)到之時,獲取計數器的計數值,通過這個值就知道一個脈沖的時間周期。時間周期的倒數就是外部信號的頻率。

具體代碼如下:

當然你可能覺得這只是測量信號的一個周期脈沖不夠準確,那么也可以測量100次脈沖的時間再除以100,就是一個脈沖的時間,然后再取倒數就可以算出頻率,這種方法也是可以的。具體代碼如下:

程序流程圖

efae85dc-442d-11eb-8b86-12bb97331649.png

串口打印結果

當然測量信號頻率的方法可以直接利用TIM的輸入捕獲的方法就可以實現。用外部中斷只是另一種測量方案,具體用哪一種還要看具體情況。

責任編輯:xj

原文標題:利用外部中斷和定時器測量信號頻率

文章出處:【微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。

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

    關注

    11

    文章

    2797

    瀏覽量

    76937
  • 定時器
    +關注

    關注

    23

    文章

    3253

    瀏覽量

    115067
  • 外部中斷
    +關注

    關注

    1

    文章

    132

    瀏覽量

    15843

原文標題:利用外部中斷和定時器測量信號頻率

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AN-644:在微型轉換上使用定時器2進行頻率測量(uC013)

    電子發燒友網站提供《AN-644:在微型轉換上使用定時器2進行頻率測量(uC013).pdf》資料免費下載
    發表于 01-13 17:31 ?0次下載
    AN-644:在微型轉換<b class='flag-5'>器</b>上使用<b class='flag-5'>定時器</b>2進行<b class='flag-5'>頻率</b><b class='flag-5'>測量</b>(uC013)

    是德KEYSIGHT53200A 系列射頻/通用頻率計數器/定時器

    是德KEYSIGHT53200A系列射頻/通用頻率計數器/定時器 53200A頻率計數器能在研發和制造中進行快速、精確頻率和時間間隔測量
    的頭像 發表于 12-01 22:52 ?159次閱讀

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

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

    定時器的工作方式介紹

    或實現周期性事件的硬件模塊。它可以用于實現各種定時任務,如定時中斷、PWM(脈沖寬度調制)輸出、頻率測量等。定時器通常由一個計數
    的頭像 發表于 07-12 10:29 ?1057次閱讀

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

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

    使用定時器的編碼接口模式,打開定時器的溢出中斷,當定時器上溢出和下溢出是,是否都會產生溢出中斷

    使用定時器的編碼接口模式,打開定時器的溢出中斷,當定時器上溢出和下溢出是,是否都會產生溢出中斷
    發表于 05-24 07:41

    stm32定時器的如何外部啟動?

    我想利用stm32定時器精確定時一個信號從發生到結束的時間,想讓定時器通過外部觸發開啟,一般有什
    發表于 05-10 06:40

    STM32的GPIO引腳能同時用作外部中斷定時器輸入捕獲嗎?

    今天突然在項目中想到一種用法,將GPIO的某一個引腳,同時配置外部中斷(在中斷中做一些邏輯)和復用為定時器的輸入捕獲引腳。 查看GPIO的原理框圖,感覺可行。找個機會試試這種用法,于是
    發表于 05-09 08:22

    如何實現一個軟件定時器

    在Linux,uC/OS,FreeRTOS等操作系統中,都帶有軟件定時器,原理大同小異。典型的實現方法是:通過一個硬件定時器產生固定的時鐘節拍,每次硬件定時器中斷到,就對一個全局的時間
    的頭像 發表于 04-29 11:00 ?703次閱讀

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

    定時器 IC 555 是最通用和最常用的 IC 之一,因為它的應用范圍更廣,如 PWM放大器、延遲定時器、開關電路、占空比選擇、時鐘脈沖發生等。這也可用于各種應用,如精確
    的頭像 發表于 02-25 15:16 ?2321次閱讀
    使用555<b class='flag-5'>定時器</b>的可調雙<b class='flag-5'>定時器</b>電路

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

    獨立32位計數及自動重裝32位計數,可以產生周期中斷DMA事件及外部事件。定時器/計數還可
    發表于 02-21 14:09

    淺談時間間隔計數定時器間隔測量功能

    頻率計數器一樣,定時器計數或間隔定時器也具有許多組成測試儀器的模塊。它們與計數中使用的非常相似,只需要重新配置即可提供間隔
    的頭像 發表于 02-08 07:32 ?1791次閱讀

    單片機外部中斷定時器中斷的區別和用法

    單片機外部中斷定時器中斷在觸發來源、應用場景以及功能特點上存在明顯差異** **。
    的頭像 發表于 01-28 17:35 ?3235次閱讀

    定時器原理能控制馬達嗎為什么

    定時器原理可以用于控制馬達。馬達是一種將電能轉換為機械能的設備,通常由電動機和傳動裝置組成。定時器是一種電子設備,用來生成和計時精確而穩定的時間信號。通過將定時器與馬達控制電路相連,可
    的頭像 發表于 01-23 15:21 ?696次閱讀

    555定時器的基本功能 555定時器的工作原理及其應用

    555定時器是一種非常常見和常用的集成電路,它具有廣泛的應用領域,例如計時、頻率分頻、脈沖寬度調制等。本文將詳細介紹555定時器的基本功能、工作原理以及應用。 一、555定時器的基本功
    的頭像 發表于 01-18 11:12 ?1.6w次閱讀
    主站蜘蛛池模板: 美女丝袜长腿喷水gif动态图| 立即播放免费毛片一级| 成人国产一区二区| 九九热九九| 35pao免费视频| 天天天天色| 手机在线免费视频| 国产精品免费看久久久| 欧美黑人三级| 午夜精品在线观看| a级精品九九九大片免费看| 免费大片黄日本在线观看| 色天使亚洲| 人人插视频| 国模私拍视频在线观看| 1024视频色版在线网站| 国产卡一卡2卡三卡免费视频| 成人三级影院| 爱逼综合| 天天干夜夜骑| 天天夜夜操| 黄色理伦| 亚洲精品在线视频观看| 免费大片黄在线观看| 日本不卡免费高清视频| 中文字幕视频二区| 国产视频h| 视频免费1区二区三区| 欧美日本视频一区| 亚洲国产精品乱码一区二区三区| 亚洲综合天堂网| 色多多免费观看| 人人入人人爱| 国产色噜噜| 天天操2023| 国产亚洲papapa| 2021国产精品久久| 久久精品国产精品亚洲人人| 在线网址你懂的| 欧美色视频网| 亚洲qingse中文字幕久久|