![]() |
mFrame
|
脈衝計時器類 更多...
#include <PulseTimer.h>
複合項目 | |
| struct | Event |
| [Interface] 高低電平持續時間事件處理介面。 更多... | |
| union | Flag |
公開型態 | |
| enum class | State : uint8 { RISE , FALL , NONE } |
| 高低電平狀態枚舉。 更多... | |
公開方法(Public Methods) | |
| PulseTimer (uint32 debounce=1000, Event *event=nullptr) | |
| Construct a new Pulse Timer object. | |
| virtual | ~PulseTimer (void) override |
| Destroy the object. | |
| virtual void | onEdgeRise (void) override |
| 邊緣觸發事件處理方法。 | |
| virtual void | onEdgeFall (void) override |
| 邊緣觸發事件處理方法。 | |
| virtual void | update (void) override |
| 更新方法 | |
| void | setDebounce (uint32 micros) |
| 設定去彈跳時間。 | |
| void | setEvent (Event *event) |
| 設定邊緣觸發事件物件。 | |
| State | getState (void) |
| 取得當前高低電平狀態。 | |
| bool | isRise (void) |
| 判斷當前狀態是否為高電平。 | |
| bool | isFall (void) |
| 判斷當前狀態是否為低電平。 | |
| uint32 | getDuration (void) |
| 取得持續時間。 | |
| void | handle (bool direct) |
公開方法(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 |
| 虛擬析構函式 | |
公開屬性 | |
| ufm::util::ElapsedTimer | vElapsedTimer |
| uint32 | vDebounce |
| uint32 | vRecode |
| Event * | vEvent |
| Flag | vFlag |
| State | vState |
脈衝計時器類
提供高低電平持續時間的計時功能,並支援邊緣觸發事件。 當高電平或低電平持續時間達到指定的微秒數時,將自動觸發對應事件。
|
strong |
| ufm::hw::PulseTimer::PulseTimer | ( | uint32 | debounce = 1000, |
| Event * | event = nullptr ) |
Construct a new Pulse Timer object.
初始化脈衝計時器,設定去彈跳時間為 1000 微秒(1 毫秒), 並將事件處理物件指標設為 nullptr。
| debounce | 去彈跳時間,以微秒為單位,預設值為 1000 微秒(1 毫秒)。 |
| event | 指向 Event 物件的指標,預設為 nullptr。 |
|
inline |
取得持續時間。
|
inline |
取得當前高低電平狀態。
|
inline |
判斷當前狀態是否為低電平。
|
inline |
判斷當前狀態是否為高電平。
|
overridevirtual |
|
overridevirtual |
|
inline |
設定去彈跳時間。
| micros | 去彈跳時間,以微秒為單位。 |
|
overridevirtual |
| uint32 ufm::hw::PulseTimer::vDebounce |
去彈跳時間
| ufm::util::ElapsedTimer ufm::hw::PulseTimer::vElapsedTimer |
計時器,用於計算執行時間
| Event* ufm::hw::PulseTimer::vEvent |
邊緣觸發事件物件指標
| Flag ufm::hw::PulseTimer::vFlag |
狀態標誌,用於控制事件處理
| uint32 ufm::hw::PulseTimer::vRecode |
記錄時間
| State ufm::hw::PulseTimer::vState |
當前高低電平狀態