![]() |
mFrame
|
MCXA153 脈衝寬度調變 (PWM) 控制類別 更多...
#include <CorePulseWidth.h>
公開型態 | |
| enum struct | Select : unsigned char { CTIMER0 = 0 , CTIMER1 = 1 , CTIMER2 = 2 } |
| CTIMER 定時器選擇枚舉 更多... | |
| enum struct | Channel : unsigned char { MAT0 = 0 , MAT1 = 1 , MAT2 = 2 , MAT3 = 3 } |
| CTIMER 匹配通道選擇枚舉 更多... | |
公開方法(Public Methods) | |
| CorePulseWidth (Select select, Channel periodChannel) | |
| 建構 CorePulseWidth PWM 控制物件 | |
| virtual | ~CorePulseWidth (void) override |
| 銷毀 CorePulseWidth PWM 控制物件 | |
| virtual bool | deinit (void) override |
| PWM 控制器硬體反初始化 | |
| virtual bool | init (void) override |
| PWM 控制器硬體初始化 | |
| virtual bool | isInit (void) override |
| 檢查 PWM 控制器初始化狀態 | |
| virtual int | setPeriod (float hz) override |
| 設定 PWM 信號頻率 | |
| virtual bool | getPeriod (float &resultHz) override |
| 讀取 PWM 信號當前頻率 | |
| virtual bool | setPercent (int channel, float percent) override |
| 設定指定通道的 PWM 占空比 | |
| virtual bool | getPercent (int channel, float &result) override |
| 查詢指定通道的 PWM 占空比 | |
| virtual bool | start (bool enable) override |
| 啟動或停止 PWM 輸出 | |
公開方法(Public Methods) 繼承自 ufm::lang::Object | |
| void * | operator new (size_t n) |
| 使用運算子 new 分配記憶體 | |
| void * | operator new (size_t n, void *p) |
| 在指定記憶體上調用運算子 new | |
| virtual ufm::lang::Object & | getObject (void) override |
| 取得對應的 Object 物件 | |
| void | delay (int milliseconds) const |
| 延遲指定的毫秒數進行執行緒等待 | |
| bool | equals (Object *object) const |
| 判斷與另一物件是否為相同參照(指標型態比較) | |
| bool | equals (Object &object) const |
| 判斷與另一物件是否為相同參照(參照型態比較) | |
| void | wait (void) const |
| 使當前線程等待直到被通知 | |
| bool | wait (int timeout) const |
| 等待通知或超時 | |
| bool | yield (void) const |
| 讓執行緒讓渡控制權給同優先權的下一個執行緒 | |
| int | lock (void) const |
| 核心鎖定,鎖定期間禁止線程切換 | |
| int | unlock (void) const |
| 核心解鎖 | |
| ufm::sys::Thread * | currentThread (void) const |
| 取得當前執行緒指標 | |
| virtual int | hashcode (void) const |
| 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
公開方法(Public Methods) 繼承自 ufm::lang::Interface | |
| virtual | ~Interface (void)=default |
| 虛擬析構函式 | |
靜態公開方法(Static Public Methods) | |
| static constexpr mcxa153::chip::ctimer::Register * | toRegister (Select select) |
| static constexpr const mcxa153::core::CoreDescriptor * | toDescriptor (Select select) |
公開屬性 | |
| mcxa153::chip::ctimer::Register *const | vBase |
| CTIMER 硬體基礎位址指標 | |
| const mcxa153::core::CoreDescriptor *const | vDescriptor |
| 控制器描述物件指標 | |
| const Channel | vPeriodChannel |
| PWM 週期控制通道 | |
靜態公開屬性 | |
| static constexpr const mcxa153::core::CoreDescriptor | DESCRIPTORS [] |
MCXA153 脈衝寬度調變 (PWM) 控制類別
CorePulseWidth 類別提供基於 MCXA153 微控制器 CTIMER 模組的 PWM 信號產生功能。 支援多通道 PWM 輸出,可用於馬達控制、LED 調光、類比信號合成等應用。 實作了標準的 hal::counter::PulseWidth 介面。
主要功能:
硬體支援:
技術特性:
典型應用:
使用流程:
使用範例:
效能考量:
重要限制:
|
strong |
CTIMER 匹配通道選擇枚舉
用於選擇 CTIMER 模組中的匹配輸出通道。每個 CTIMER 提供 4 個匹配通道, 其中一個被指定為週期通道 (控制 PWM 頻率),其餘可用於 PWM 輸出。
枚舉值說明:
通道功能配置:
引腳對應 (典型配置):
使用原則:
|
strong |
CTIMER 定時器選擇枚舉
用於選擇 MCXA153 微控制器中的哪一個 CTIMER 模組作為 PWM 產生器。 MCXA153 提供三個獨立的 CTIMER 模組,每個都可以獨立配置為 PWM 控制器。
枚舉值說明:
設計考量:
應用分配建議:
建構 CorePulseWidth PWM 控制物件
建立一個新的 PWM 控制器實例,指定使用的 CTIMER 模組和週期控制通道。 建構後需要調用 init() 方法才能開始使用 PWM 功能。
| select | 選擇的 CTIMER 定時器模組
|
| periodChannel | 用於週期控制的匹配通道
|
建構過程:
資源配置:
設計考量:
使用範例:
後續操作:
|
overridevirtual |
銷毀 CorePulseWidth PWM 控制物件
清理 PWM 控制器資源,確保硬體定時器正確關閉和資源釋放。 在物件生命週期結束時自動調用。
銷毀過程:
硬體清理:
安全特性:
輸出狀態:
使用注意:
典型使用場景:
|
overridevirtual |
PWM 控制器硬體反初始化
停用 CTIMER 硬體模組,清除所有設定,並釋放相關系統資源。 反初始化會立即停止所有 PWM 輸出信號。
反初始化步驟:
硬體狀態變化:
輸出行為:
安全考量:
使用時機:
範例使用:
實作 hal::Base.
|
overridevirtual |
查詢指定通道的 PWM 占空比
讀取特定 PWM 輸出通道的目前占空比設定值。 返回的是軟體設定值,而非即時測量值。
| channel | 目標 PWM 輸出通道編號 範圍:0 到 3 (對應 MAT0-MAT3) 限制:週期通道會返回錯誤 |
| result | 用於儲存查詢結果的浮點數參考 輸出:占空比百分比 (0.0% 到 100.0%) 精度:依硬體解析度和計算精度而定 |
查詢原理:
數值精度:
使用場景:
使用範例:
即時性考量:
錯誤處理:
|
overridevirtual |
讀取 PWM 信號當前頻率
查詢 PWM 控制器目前設定的輸出頻率。此功能透過讀取硬體暫存器 計算實際的 PWM 頻率,可用於驗證頻率設定或系統狀態監控。
| [out] | resultHz | 傳出參數,儲存讀取到的頻率值
|
| true | 頻率讀取成功,resultHz 包含有效的頻率值 |
| false | 頻率讀取失敗,可能原因:
|
頻率計算原理:
精度特性:
使用場景:
使用範例:
錯誤處理範例:
效能考量:
注意事項:
|
overridevirtual |
PWM 控制器硬體初始化
配置並啟用 CTIMER 硬體模組,準備 PWM 信號產生功能。 初始化會設定定時器基礎配置,但不會立即開始 PWM 輸出。
初始化步驟:
硬體配置:
預設狀態:
資源需求:
後續操作:
使用範例:
錯誤處理:
實作 hal::Base.
|
overridevirtual |
檢查 PWM 控制器初始化狀態
查詢 CTIMER 硬體模組是否已正確初始化並準備運行。 用於驗證硬體狀態和診斷系統問題。
檢查項目:
狀態判定:
典型使用場景:
使用範例:
除錯應用:
效能考量:
實作 hal::Base.
|
overridevirtual |
設定指定通道的 PWM 占空比
配置特定 PWM 輸出通道的占空比百分比,控制高電平時間比例。 占空比變更會立即生效,但建議在適當時機進行調整。
| channel | 目標 PWM 輸出通道編號 範圍:0 到 3 (對應 MAT0-MAT3) 限制:週期通道不可用於 PWM 輸出 |
| percent | 占空比百分比 範圍:0.0% 到 100.0%
|
占空比計算:
解析度特性:
輸出極性:
通道獨立性:
動態調整:
應用範例:
特殊值處理:
|
overridevirtual |
設定 PWM 信號頻率
配置 PWM 信號的基礎頻率,影響所有輸出通道的週期時間。 頻率變更會重新計算定時器預分頻器和週期匹配值。
| hz | PWM 頻率 (赫茲) 範圍:約 1Hz 到 1MHz (依系統時鐘而定) 常用值:
|
頻率計算原理:
自動預分頻:
解析度影響:
頻率精度:
系統影響:
使用範例:
頻率選擇建議:
效能考量:
|
overridevirtual |
啟動或停止 PWM 輸出
控制 PWM 信號的整體輸出狀態,影響所有已配置的通道。 提供統一的啟動/停止控制,確保多通道同步操作。
| enable | PWM 輸出控制
|
啟動操作 (enable = true):
停止操作 (enable = false):
同步特性:
輸出狀態:
應用場景:
RGB LED 控制:
安全考量:
效能影響:
狀態管理:
|
staticconstexpr |