• 正文
    • 1.GPIO中斷
    • 2.定時(shí)器輸入捕獲
    • 3.定時(shí)器用作計(jì)數(shù)
    • 總結(jié):
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

2023/01/09
1208
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

有的傳感器會(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可能處理不過來GPIO中斷處理程序應(yīng)盡可能短,否則影響處理速度GPIO中斷優(yōu)先級(jí)應(yīng)高,否則會(huì)延遲對(duì)脈沖信號(hào)的處理

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

下降沿的脈沖數(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。

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

輸入捕獲常用來測(cè)量脈沖寬度和頻率,它也可以用來對(duì)脈沖計(jì)數(shù)。它的原理和上述GPIO中斷類似,只不過用的是定時(shí)器的輸入捕獲中斷。

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í)器來計(jì)數(shù)。

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

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

總結(jié):

1)盡量使用TIMER ETR引腳通過計(jì)數(shù)器方式來實(shí)現(xiàn)脈沖計(jì)數(shù),如果條件不允許,外部脈沖輸入頻率不是很高,也可以使用GPIO中斷來實(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í),就處理不過來了,實(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ù)。

關(guān)注公眾號(hào),掃碼加入嵌入式交流群:

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
STM32H743ZIT6 1 STMicroelectronics High-performance and DSP with DP-FPU, Arm Cortex-M7 MCU with 2MBytes of Flash memory, 1MB RAM, 480 MHz CPU, Art Accelerator, L1 cache, external memory interface, large set of peripherals

ECAD模型

下載ECAD模型
$22.21 查看
LPC1768FBD100K 1 NXP Semiconductors RISC Microcontroller

ECAD模型

下載ECAD模型
$17.16 查看
ATMEGA64A-AUR 1 Microchip Technology Inc IC MCU 8BIT 64KB FLASH 64TQFP

ECAD模型

下載ECAD模型
$5.79 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

TopSemic,讓芯片使用更簡(jiǎn)單。 專注分享:嵌入式,單片機(jī),STM32,ARM,RTOS,Linux, 軟硬件,半導(dǎo)體,電子技術(shù)等相關(guān)內(nèi)容。