加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶(hù)
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1.GPIO中斷
    • 2.定時(shí)器輸入捕獲
    • 3.定時(shí)器用作計(jì)數(shù)
    • 總結(jié):
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

2023/01/09
1585
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(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可能處理不過(guò)來(lái)GPIO中斷處理程序應(yīng)盡可能短,否則影響處理速度GPIO中斷優(yōu)先級(jí)應(yīng)高,否則會(huì)延遲對(duì)脈沖信號(hào)的處理

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

下降沿的脈沖數(shù)理論為100ms/0.1ms=1000個(gè),實(shí)際上因?yàn)橛猩僭S誤差,從上面邏輯分析儀可以看到實(shí)際脈沖數(shù)為1.009k,即1009個(gè)。然后將PWM接到另外一個(gè)板子的GPIO引腳上,開(kāi)啟下降沿中斷,在中斷服務(wù)函數(shù)中計(jì)數(shù),可以看到實(shí)際值就是1009。

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

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

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

定時(shí)器和計(jì)數(shù)器其實(shí)很相似,只不過(guò)定時(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ù)。

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

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

總結(jié):

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

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

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠(chǎng)商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ATXMEGA128A4U-AU 1 Microchip Technology Inc IC MCU 8BIT 128KB FLASH 44TQFP

ECAD模型

下載ECAD模型
$4.91 查看
TMS320F28335PGFA 1 Texas Instruments C2000™ 32-bit MCU with 150 MIPS, FPU, 512 KB flash, EMIF, 12b ADC 176-LQFP -40 to 85

ECAD模型

下載ECAD模型
$29.61 查看
MK70FN1M0VMJ12R 1 Freescale Semiconductor 32-BIT, FLASH, 120MHz, RISC MICROCONTROLLER, PBGA256, 17 X 17 MM, MAPBGA-256
暫無(wú)數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

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