![]() |
mFrame
|
GPIO 按鈕控制類別 更多...
#include <GpioButton.h>
複合項目 | |
| struct | Event |
| 按鈕事件處理介面 更多... | |
公開方法(Public Methods) | |
| GpioButton (hal::digital::GeneralInput &pin, uint32 debounceMillicroseconds=5000, bool inverted=false) | |
| 建構 GPIO 按鈕物件 | |
| virtual | ~GpioButton (void) override |
| 解構 GPIO 按鈕物件 | |
| virtual void | update (void) override |
| 更新按鈕狀態 | |
| GpioButton & | setEvent (Event *event) |
| 設定事件處理器 | |
| GpioButton & | setInverted (bool inverted) |
| 設定按鈕邏輯反相 | |
公開方法(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 |
| 虛擬析構函式 | |
GPIO 按鈕控制類別
此類別用於管理 GPIO 按鈕的狀態檢測,提供防彈跳功能以及按鈕按下/釋放事件處理。 支援正常邏輯(高電平為按下)和反相邏輯(低電平為按下)兩種模式。
| ufm::hw::GpioButton::GpioButton | ( | hal::digital::GeneralInput & | pin, |
| uint32 | debounceMillicroseconds = 5000, | ||
| bool | inverted = false ) |
建構 GPIO 按鈕物件
建立一個新的 GPIO 按鈕控制物件,並初始化相關參數。 建構時會讀取按鈕的初始狀態並啟動防彈跳計時器。
| pin | GPIO 輸入腳位的參考,必須是有效的 GeneralInput 物件 |
| debounceMillicroseconds | 防彈跳時間,單位為微秒,預設值為 5000 微秒(5 毫秒) |
| inverted | 按鈕邏輯是否反相,預設值為 false(正常邏輯)
|
|
overridevirtual |
解構 GPIO 按鈕物件
清理物件資源,確保物件安全銷毀。 解構時不會觸發任何事件,也不會改變 GPIO 腳位的狀態。
| GpioButton & ufm::hw::GpioButton::setEvent | ( | Event * | event | ) |
設定事件處理器
設定或變更按鈕狀態變化時的事件處理器。當按鈕狀態發生轉換時, 會呼叫事件處理器的對應方法。
| event | 事件處理器指標,必須繼承自 Event 結構體
|
| GpioButton & ufm::hw::GpioButton::setInverted | ( | bool | inverted | ) |
設定按鈕邏輯反相
設定按鈕的邏輯極性,以適應不同的硬體設計需求。 這個設定會影響 GPIO 電平狀態到邏輯狀態的對應關係。
| inverted | 邏輯反相旗標
|
|
overridevirtual |
更新按鈕狀態
定期檢查按鈕狀態變化並處理防彈跳邏輯。此方法實現了完整的按鈕狀態管理流程: