mFrame
載入中...
搜尋中...
無符合項目
ufm::hw::PulseTimer 類別 參考文件

脈衝計時器類 更多...

#include <PulseTimer.h>

類別ufm::hw::PulseTimer的繼承圖:
ufm::lang::Object hal::digital::EdgeTrigger::Event ufm::lang::Updatable ufm::lang::Interface

複合項目

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::ObjectgetObject (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::ThreadcurrentThread (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
 
EventvEvent
 
Flag vFlag
 
State vState
 

詳細描述

脈衝計時器類

提供高低電平持續時間的計時功能,並支援邊緣觸發事件。 當高電平或低電平持續時間達到指定的微秒數時,將自動觸發對應事件。

列舉型態成員說明文件

◆ State

enum class ufm::hw::PulseTimer::State : uint8
strong

高低電平狀態枚舉。

定義了高電平、低電平和無狀態的枚舉類型。

1.0.0
列舉值
RISE 

高電平狀態

FALL 

低電平狀態

NONE 

無狀態

建構子與解構子說明文件

◆ PulseTimer()

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。

函式成員說明文件

◆ getDuration()

uint32 ufm::hw::PulseTimer::getDuration ( void )
inline

取得持續時間。

傳回值
uint32 返回從計時器啟動到現在的經過時間(毫秒)。

◆ getState()

State ufm::hw::PulseTimer::getState ( void )
inline

取得當前高低電平狀態。

傳回值
State

◆ isFall()

bool ufm::hw::PulseTimer::isFall ( void )
inline

判斷當前狀態是否為低電平。

傳回值
true 當前狀態為低電平
false 當前狀態不是低電平

◆ isRise()

bool ufm::hw::PulseTimer::isRise ( void )
inline

判斷當前狀態是否為高電平。

傳回值
true 當前狀態為高電平
false 當前狀態不是高電平

◆ onEdgeFall()

virtual void ufm::hw::PulseTimer::onEdgeFall ( void )
overridevirtual

邊緣觸發事件處理方法。

當硬體偵測到指定的邊緣觸發條件時, 將自動呼叫此方法執行對應的處理邏輯。

實作 hal::digital::EdgeTrigger::Event.

◆ onEdgeRise()

virtual void ufm::hw::PulseTimer::onEdgeRise ( void )
overridevirtual

邊緣觸發事件處理方法。

當硬體偵測到指定的邊緣觸發條件時, 將自動呼叫此方法執行對應的處理邏輯。

實作 hal::digital::EdgeTrigger::Event.

◆ setDebounce()

void ufm::hw::PulseTimer::setDebounce ( uint32 micros)
inline

設定去彈跳時間。

參數
micros去彈跳時間,以微秒為單位。

◆ setEvent()

void ufm::hw::PulseTimer::setEvent ( Event * event)
inline

設定邊緣觸發事件物件。

參數
event指向 Event 物件的指標。

◆ update()

virtual void ufm::hw::PulseTimer::update ( void )
overridevirtual

更新方法

當系統需要更新物件狀態時被呼叫, 實現類應在此方法中進行必要的狀態更新邏輯。

實作 ufm::lang::Updatable.

資料成員說明文件

◆ vDebounce

uint32 ufm::hw::PulseTimer::vDebounce

去彈跳時間

◆ vElapsedTimer

ufm::util::ElapsedTimer ufm::hw::PulseTimer::vElapsedTimer

計時器,用於計算執行時間

◆ vEvent

Event* ufm::hw::PulseTimer::vEvent

邊緣觸發事件物件指標

◆ vFlag

Flag ufm::hw::PulseTimer::vFlag

狀態標誌,用於控制事件處理

◆ vRecode

uint32 ufm::hw::PulseTimer::vRecode

記錄時間

◆ vState

State ufm::hw::PulseTimer::vState

當前高低電平狀態


此類別(class) 文件是由下列檔案中產生: