用單片機測頻率脈沖可以用外中斷+定時器、定時器的輸入捕獲、或編碼器模塊(例如LPC 的QEI可實現對電機的轉速、位置測量和報警)
單片機的外中斷對外部脈沖的觸發條件有2種:
- 邊沿觸發:適合脈沖,比較常用
- 電平觸發:使用時要:進入時關閉中斷,退出時再開中斷以防止電平持續時間過長,ISR還未處理完中斷又發生中斷導致的反復中斷觸發。
外中斷+定時器法:
- 外中斷完成對外部脈沖的計數,定時器完成設定測量周期,定時器的中斷優先級要比外中斷高以實現在測量周期到達后關閉外中斷。
- 缺點:利用單片機的內部資源多(外中斷、定時器),主要靠軟件處理完成,速度慢,CPU利用率低。
- 適合條件:頻率不高的場合。
定時器的輸入捕獲法:
- 輸入捕獲的概念:通過設定相應PIN腳(定時器的輸入捕獲通道)的觸發條件(邊沿觸發、電平觸發),在觸發事件發生時,內部自動將定時器計數器的值送入捕獲寄存器,通過計算兩次捕獲寄存器的差值就得到輸入脈沖信號的頻率。
- 觸發時刻通過查詢捕獲標志寄存器的狀態或可選產生的中斷進行操作
- 優點:單片機內部硬件自動完成,效率高、速度快、占用內部外圍資源和cpu占用率低。
- 注意:如果外部脈沖頻率比較高,最好通過DMA進行緩沖防止數據因來不及處理而被覆蓋掉;如果定時器的計數溢出,這時候可以取其補碼。
定時器的輸出匹配:
- 概念:通過設定匹配值。當定時器的計數值與匹配值相等時觸發PIN腳(定時器輸出匹配通道)產生:高低電平、或翻轉動作。實際上是將具有時間控制要求與IO控制的功能整合。
編碼器測脈沖:比如LPC的單片機有此模塊可有硬件自動完成對外部脈沖的計數、對電機的速度位置的檢測和報警控制。
