精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

MCU是如何統(tǒng)計(jì)脈沖信號(hào)輸入個(gè)數(shù)的呢?

TopSemic嵌入式 ? 來(lái)源:TopSemic嵌入式 ? 2023-01-09 09:08 ? 次閱讀

有的傳感器會(huì)輸出脈沖信號(hào)MCU需要統(tǒng)計(jì)脈沖輸入的個(gè)數(shù),通常有如下實(shí)現(xiàn)方式:

1.GPIO中斷

原理很簡(jiǎn)單,利用GPIO的上升沿或者下降沿中斷,進(jìn)中斷的次數(shù)就是脈沖的個(gè)數(shù)。只需要在中斷服務(wù)函數(shù)里計(jì)數(shù)即可。

使用GPIO中斷需要注意:

脈沖信號(hào)的頻率不能太高,否則MCU可能處理不過來(lái)

GPIO中斷處理程序應(yīng)盡可能短,否則影響處理速度

GPIO中斷優(yōu)先級(jí)應(yīng)高,否則會(huì)延遲對(duì)脈沖信號(hào)的處理

我們先用一個(gè)板子產(chǎn)生頻率為10Khz的PWM波,時(shí)長(zhǎng)為100ms 。

5cc93916-8fb1-11ed-bfe3-dac502259ad0.png

5cf127b4-8fb1-11ed-bfe3-dac502259ad0.png

下降沿的脈沖數(shù)理論為100ms/0.1ms=1000個(gè),實(shí)際上因?yàn)橛猩僭S誤差,從上面邏輯分析儀可以看到實(shí)際脈沖數(shù)為1.009k,即1009個(gè)。

然后將PWM接到另外一個(gè)板子的GPIO引腳上,開啟下降沿中斷,在中斷服務(wù)函數(shù)中計(jì)數(shù),可以看到實(shí)際值就是1009。

5cfe6082-8fb1-11ed-bfe3-dac502259ad0.png

2.定時(shí)器輸入捕獲

輸入捕獲常用來(lái)測(cè)量脈沖寬度和頻率,它也可以用來(lái)對(duì)脈沖計(jì)數(shù)。

它的原理和上述GPIO中斷類似,只不過用的是定時(shí)器的輸入捕獲中斷。

5d29f7f6-8fb1-11ed-bfe3-dac502259ad0.png

3.定時(shí)器用作計(jì)數(shù)

定時(shí)器和計(jì)數(shù)器其實(shí)很相似,只不過定時(shí)器是對(duì)內(nèi)部的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)到一定數(shù)值時(shí)就可以根據(jù)頻率,計(jì)算出時(shí)間。

而計(jì)數(shù)器是對(duì)外部脈沖進(jìn)行計(jì)數(shù),即外部引腳每發(fā)生一次變化,計(jì)數(shù)器就計(jì)數(shù)一次。

可以將外部脈沖信號(hào)接入到MCU的TIMx_ETR引腳,就可以使用MCU的定時(shí)器來(lái)計(jì)數(shù)。

5d50b7ec-8fb1-11ed-bfe3-dac502259ad0.png

5d84ede6-8fb1-11ed-bfe3-dac502259ad0.png

它的使用也很簡(jiǎn)單,主要就是配置TIMx_SMCR寄存器(slave mode control register),具體可以參考芯片參考手冊(cè)。

5d94c1da-8fb1-11ed-bfe3-dac502259ad0.png

可以看到定時(shí)器CNT的值就是脈沖的個(gè)數(shù)。

5db905ea-8fb1-11ed-bfe3-dac502259ad0.png

總結(jié):

1)盡量使用TIMER ETR引腳通過計(jì)數(shù)器方式來(lái)實(shí)現(xiàn)脈沖計(jì)數(shù),如果條件不允許,外部脈沖輸入頻率不是很高,也可以使用GPIO中斷來(lái)實(shí)現(xiàn),不過還是要同時(shí)考慮高頻中斷對(duì)整體系統(tǒng)的影響。比如上面MCU主頻是48Mhz,將10Khz調(diào)整為100Khz,實(shí)測(cè)GPIO中斷還可以準(zhǔn)確計(jì)數(shù),但是當(dāng)再繼續(xù)增大到1Mhz時(shí),就處理不過來(lái)了,實(shí)測(cè)發(fā)出約50000個(gè)脈沖,GPIO中斷只測(cè)出了10206個(gè),而使用計(jì)數(shù)器模式則可以準(zhǔn)確的計(jì)數(shù)。

2)如果使用GPIO中斷計(jì)數(shù),要特別注意GPIO上不能有接地的電容,否則會(huì)改變脈沖波形,導(dǎo)致錯(cuò)誤的計(jì)數(shù)。






審核編輯:劉清

聲明:本文內(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)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16984

    瀏覽量

    350294
  • 脈沖信號(hào)
    +關(guān)注

    關(guān)注

    6

    文章

    394

    瀏覽量

    36916
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1196

    瀏覽量

    51914
  • PWM波
    +關(guān)注

    關(guān)注

    0

    文章

    99

    瀏覽量

    16840

原文標(biāo)題:MCU如何實(shí)現(xiàn)對(duì)外部脈沖信號(hào)的計(jì)數(shù)功能?

文章出處:【微信號(hào):TopSemic,微信公眾號(hào):TopSemic嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MCU可以正常工作但是端口輸入脈沖信號(hào)后,讀值不準(zhǔn)確大幅度變化是為什么?

    MCU還可以正常工作但是端口輸入脈沖信號(hào)后,讀值不準(zhǔn)確大幅度變化,之前是好的,這是為啥,是MCU壞了嗎
    發(fā)表于 02-20 07:09

    labview 脈沖個(gè)數(shù)測(cè)量

    我正在做畢設(shè):基于labview的直流電機(jī)調(diào)速控制,現(xiàn)在信號(hào)進(jìn)來(lái)后是脈沖信號(hào),想轉(zhuǎn)化為轉(zhuǎn)速,必須知道它的脈沖個(gè)數(shù),有哪位知道怎么測(cè)
    發(fā)表于 03-21 10:58

    循環(huán)輸出不同頻率,不同個(gè)數(shù)脈沖

    較多的時(shí)候,就提示發(fā)生內(nèi)部錯(cuò)誤。 不知如何解決,是分配的內(nèi)存不夠的原因嗎?另外,如何驗(yàn)證輸出的脈沖正確。本想再通過計(jì)數(shù)器采集脈沖,但同一個(gè)通道不能在輸出的同時(shí)做數(shù)據(jù)采集呀?所以,如何將這個(gè)輸出通道的信號(hào)給到另一個(gè)計(jì)數(shù)器中
    發(fā)表于 05-30 11:23

    用matlab統(tǒng)計(jì)有效信號(hào)個(gè)數(shù)

    最近在測(cè)激光,用邏輯分析儀測(cè)出來(lái)的信號(hào)是0和1組成的信號(hào)。現(xiàn)在需要統(tǒng)計(jì)有效信號(hào)個(gè)數(shù)。比如00100011101100,不管0和1的
    發(fā)表于 06-30 20:43

    請(qǐng)問能用中斷方式計(jì)算接收輸入脈沖個(gè)數(shù)嗎?

    一個(gè)單片機(jī)用外部中斷方式發(fā)出脈沖的同時(shí),能不能也用中斷方式計(jì)算接收輸入脈沖個(gè)數(shù)
    發(fā)表于 07-12 04:35

    如何測(cè)輸入脈沖個(gè)數(shù)

    我用一個(gè)單片機(jī)輸出頻率為100K的脈沖信號(hào),另一個(gè)單片機(jī)用外部中斷方式接收脈沖信號(hào),能測(cè)出脈沖個(gè)數(shù)
    發(fā)表于 07-24 02:10

    linux統(tǒng)計(jì)文件個(gè)數(shù)

    這篇文章主要介紹了Linux下統(tǒng)計(jì)當(dāng)前文件夾下的文件個(gè)數(shù)、目錄個(gè)數(shù),本文使用ls命令配合管理、grep命令實(shí)現(xiàn)統(tǒng)計(jì)需求,需要的朋友可以參考下
    發(fā)表于 07-24 08:40

    如何控制波形脈沖個(gè)數(shù)

    。首先知道正常的PWM波是用一個(gè)定時(shí)器輸出的,配置好以后就開始源源不斷地輸出波形。那么如何控制波形脈沖個(gè)數(shù)?這里我提出三種設(shè)計(jì)思路:一個(gè)定時(shí)器輸出PWM波,另一個(gè)定時(shí)器也通過對(duì)時(shí)間的計(jì)數(shù)功能來(lái)判斷波形
    發(fā)表于 08-18 06:41

    使用STM32芯片統(tǒng)計(jì)某外部信號(hào)脈沖個(gè)數(shù)

    有人使用STM32芯片開發(fā)產(chǎn)品,其中有個(gè)功能就是統(tǒng)計(jì)某外部信號(hào)脈沖個(gè)數(shù)。他采用外部中斷方式,來(lái)一個(gè)信號(hào)觸發(fā)一次中斷,在中斷程序里實(shí)現(xiàn)計(jì)數(shù)累加。但由于被
    發(fā)表于 08-18 07:33

    STM32脈沖計(jì)數(shù)低頻時(shí)不準(zhǔn)這個(gè)是為什么

    ,此時(shí)捕獲引腳捕獲到的脈沖個(gè)數(shù)不正確;正玄波頻率調(diào)到1khz以上時(shí),脈沖個(gè)數(shù)就準(zhǔn)確了。2、信號(hào)源輸出方波,頻率1hz時(shí),經(jīng)比較整形電路后送給
    發(fā)表于 11-30 10:26

    有哪些方法可以實(shí)習(xí)MCU對(duì)外部脈沖信號(hào)的計(jì)數(shù)功能

    有的傳感器會(huì)輸出脈沖信號(hào)MCU需要統(tǒng)計(jì)脈沖輸入個(gè)數(shù)
    發(fā)表于 02-03 15:49

    脈沖輸入信號(hào)調(diào)理電路

    脈沖輸入信號(hào)調(diào)理電路
    發(fā)表于 02-09 16:14 ?1842次閱讀
    <b class='flag-5'>脈沖</b>量<b class='flag-5'>輸入</b><b class='flag-5'>信號(hào)</b>調(diào)理電路

    如何用示波器去測(cè)量脈沖信號(hào)

    如何用示波器去測(cè)量脈沖信號(hào)以及測(cè)量脈沖信號(hào)對(duì)示波器有什么要求。
    的頭像 發(fā)表于 10-04 08:49 ?1.6w次閱讀

    怎么去判斷支路的個(gè)數(shù)

    支路是什么意思?怎么去判斷支路的個(gè)數(shù)
    的頭像 發(fā)表于 02-02 09:05 ?2.2w次閱讀

    脈沖編碼器輸入信號(hào)有哪幾種 | 編碼器輸出的脈沖信號(hào)有電壓?jiǎn)?| 脈沖編碼器輸入信號(hào)怎么調(diào)

    脈沖編碼器輸入信號(hào)有哪幾種 脈沖編碼器是一種用于測(cè)量運(yùn)動(dòng)、位置和速度的設(shè)備。它通過輸出脈沖信號(hào)來(lái)
    的頭像 發(fā)表于 02-18 18:25 ?2491次閱讀
    <b class='flag-5'>脈沖</b>編碼器<b class='flag-5'>輸入</b><b class='flag-5'>信號(hào)</b>有哪幾種 | 編碼器輸出的<b class='flag-5'>脈沖</b><b class='flag-5'>信號(hào)</b>有電壓?jiǎn)?| <b class='flag-5'>脈沖</b>編碼器<b class='flag-5'>輸入</b><b class='flag-5'>信號(hào)</b>怎么調(diào)