7#ifndef MFRAME_7F782700_B98A_43B9_8DE2_E02B6973E8FD
8#define MFRAME_7F782700_B98A_43B9_8DE2_E02B6973E8FD
15#include "./../../hal/digital/EdgeTrigger.h"
16#include "./../lang/Object.h"
17#include "./../lang/Updatable.h"
18#include "./../util/ElapsedTimer.h"
187 this->vDebounce = micros;
197 this->vEvent = event;
236 return this->vRecode +
static_cast<uint32
>(this->vElapsedTimer.
elapsed());
247 void handle(
bool direct);
脈衝計時器類
Definition PulseTimer.h:41
State vState
Definition PulseTimer.h:114
virtual void update(void) override
更新方法
uint32 vDebounce
Definition PulseTimer.h:110
uint32 getDuration(void)
取得持續時間。
Definition PulseTimer.h:235
State getState(void)
取得當前高低電平狀態。
Definition PulseTimer.h:206
ufm::util::ElapsedTimer vElapsedTimer
Definition PulseTimer.h:108
bool isFall(void)
判斷當前狀態是否為低電平。
Definition PulseTimer.h:226
virtual ~PulseTimer(void) override
Destroy the object.
uint32 vRecode
Definition PulseTimer.h:111
Flag vFlag
Definition PulseTimer.h:113
void setDebounce(uint32 micros)
設定去彈跳時間。
Definition PulseTimer.h:186
void setEvent(Event *event)
設定邊緣觸發事件物件。
Definition PulseTimer.h:196
State
高低電平狀態枚舉。
Definition PulseTimer.h:98
bool isRise(void)
判斷當前狀態是否為高電平。
Definition PulseTimer.h:216
virtual void onEdgeFall(void) override
邊緣觸發事件處理方法。
Event * vEvent
Definition PulseTimer.h:112
virtual void onEdgeRise(void) override
邊緣觸發事件處理方法。
PulseTimer(uint32 debounce=1000, Event *event=nullptr)
Construct a new Pulse Timer object.
物件基底類別
Definition Object.h:63
Definition ElapsedTimer.h:29
uint64 elapsed(void) const
獲取從計時器啟動到現在的經過時間
[Interface] 邊緣觸發事件處理介面。
Definition EdgeTrigger.h:102
[Interface] 高低電平持續時間事件處理介面。
Definition PulseTimer.h:64
virtual void onLowDuration(uint32 microscronds) override
處理低電平持續時間事件。
virtual void onHighDuration(uint32 microscronds) override
處理高電平持續時間事件。
[Interface] 定義可更新的物件介面
Definition Updatable.h:38
Definition PulseTimer.h:46