![]() |
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) |
![]() | |
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提供的那樣。 | |
![]() | |
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 |
當前高低電平狀態