在嵌入式系統中,定時器是一個至關重要的周邊模組。它不僅可以實現精確的延時,還可以產生脈衝寬度調變 (PWM) 訊號、捕獲外部事件,並執行週期性任務。本文將詳細講解定時器的基礎知識,包括核心概念、常用模式、設定方法和應用範例。
1. 定時器的基本概念
1.1 什麼是定時器?
定時器是一個硬體模組,用於計算時脈或外部訊號以進行時間控制。與基於軟體的延時不同,硬體定時器具有更高的精度和更低的 CPU 負載。
2. 定時器的主要功能
- 計時和計數:累積時脈以測量已使用時間或計數事件。
- 週期性中斷:當定時器達到預設值時觸發中斷,啟用週期性任務(例如:感測器數據收集、顯示更新)。
- PWM 波形產生:產生佔空比可調的訊號,適用於馬達控制和 LED 調光等應用。
3. 常見定時器模式
定時器支援多種工作模式:
- 自由運行模式:持續計數直至復位,非常適合週期性中斷和循環任務。
- 單次觸發模式:達到預設值後停止,用於一次性延遲或固定寬度脈衝。
- 輸入擷取模式:記錄外部事件(例如上升沿/下降沿)發生時的定時器值,可用於測量訊號頻率、脈衝寬度和週期。
- 脈衝寬度調變 (PWM) 模式:產生佔空比可設定的 PWM 訊號。不同的 PWM 子模式(例如:快速 PWM、相位/頻率校正 PWM)可滿足特定需求。
4. 定時器的實際應用
- 延遲和週期性中斷:確保感測器採樣或顯示更新等任務的精確性時。
- PWM 訊號產生:控制馬達轉速和 LED 亮度。
- 輸入訊號測量:分析通訊和控制系統中的外部訊號。
5. 定時器入門
對於定時器新手,可以從開發板(例如:Microchip、STM32 或 Silicon Labs)開始嘗試各種配置。嘗試設定一個簡單的定時器中斷或 PWM 輸出,以觀察實際結果。