mFrame
載入中...
搜尋中...
無符合項目
ufm::hw::SimpleLED 類別 參考文件
類別ufm::hw::SimpleLED的繼承圖:
ufm::lang::Object ufm::lang::Updatable ufm::lang::Interface

公開方法(Public Methods)

 SimpleLED (hal::digital::GeneralOutput &output, bool inverted=false)
 建構新的SimpleLED物件
 
virtual ~SimpleLED (void) override
 銷毀SimpleLED物件
 
virtual void update (void) override
 更新LED狀態
 
void setOn (void)
 開啟LED
 
void setOff (void)
 關閉LED
 
void setBlink (uint32 microseconds)
 設定LED為指定週期的閃爍模式
 
- 公開方法(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
 虛擬析構函式
 

公開屬性

hal::digital::GeneralOutputvOutput
 LED輸出介面
 
ufm::util::ElapsedTimer vTimer
 LED控制計時器
 
uint32 vBlinkPeriod
 LED閃爍週期(微秒)
 
bool vInverted
 反向輸出邏輯旗標
 

建構子與解構子說明文件

◆ SimpleLED()

ufm::hw::SimpleLED::SimpleLED ( hal::digital::GeneralOutput & output,
bool inverted = false )

建構新的SimpleLED物件

參數
outputLED控制用數位輸出介面的參考
inverted可選參數,設定反向邏輯(預設:false)

使用指定的輸出介面初始化SimpleLED。 inverted參數允許適應不同的LED接線配置。

輸出參考必須在此物件的生命週期內保持有效

使用範例:

SimpleLED led(ledPin, false); // 正常邏輯(高電平=開)
SimpleLED invertedLed(ledPin, true); // 反向邏輯(低電平=開)
Definition SimpleLED.h:52
[Interface] GPIO輸出控制介面。
Definition GeneralOutput.h:40

◆ ~SimpleLED()

virtual ufm::hw::SimpleLED::~SimpleLED ( void )
overridevirtual

銷毀SimpleLED物件

虛擬解構函數確保繼承階層中的適當清理。 在銷毀前自動關閉LED。

函式成員說明文件

◆ setBlink()

void ufm::hw::SimpleLED::setBlink ( uint32 microseconds)

設定LED為指定週期的閃爍模式

參數
microseconds閃爍週期的微秒數,表示一個完整週期的時間

配置LED以指定的週期閃爍。LED將在每 microseconds/2 間隔 在開啟和關閉狀態間切換。實際的閃爍行為由 update() 方法處理。

參數
microseconds必須 > 0 以啟用閃爍,設為 0 則停用
必須定期呼叫 update() 方法才能使閃爍功能運作
將 microseconds 設為 0 會停止閃爍,但不會改變目前的LED狀態

範例:

led.setBlink(1000000); // 每1秒閃爍(500ms亮,500ms暗)
led.setBlink(500000); // 每0.5秒閃爍
led.setBlink(0); // 停止閃爍

◆ setOff()

void ufm::hw::SimpleLED::setOff ( void )

關閉LED

根據反向邏輯設定將LED設為「關閉」狀態。 同時停用閃爍模式,將閃爍週期設為0。

此方法立即改變LED狀態並停止任何進行中的閃爍

行為:

  • 如果 inverted = false:設定輸出為LOW
  • 如果 inverted = true:設定輸出為HIGH
  • 設定 vBlinkPeriod = 0(停用閃爍)

◆ setOn()

void ufm::hw::SimpleLED::setOn ( void )

開啟LED

根據反向邏輯設定將LED設為「開啟」狀態。 同時停用閃爍模式,將閃爍週期設為0。

此方法立即改變LED狀態並停止任何進行中的閃爍

行為:

  • 如果 inverted = false:設定輸出為HIGH
  • 如果 inverted = true:設定輸出為LOW
  • 設定 vBlinkPeriod = 0(停用閃爍)

◆ update()

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

更新LED狀態

此方法由系統定期呼叫以更新LED狀態。 對於閃爍LED,它根據設定的閃爍週期管理時序和狀態轉換。 對於靜態LED(開/關),此方法不執行任何動作。

此方法應定期呼叫以確保閃爍功能正常運作
參閱
ufm::lang::Updatable::update()

行為:

  • 如果 vBlinkPeriod > 0:根據經過時間切換LED狀態
  • 如果 vBlinkPeriod = 0:不執行動作(靜態模式)

實作 ufm::lang::Updatable.

資料成員說明文件

◆ vBlinkPeriod

uint32 ufm::hw::SimpleLED::vBlinkPeriod

LED閃爍週期(微秒)

一個完整閃爍週期(亮+暗)的時間長度,以微秒為單位。 值為0時停用閃爍模式。

◆ vInverted

bool ufm::hw::SimpleLED::vInverted

反向輸出邏輯旗標

當為true時,輸出邏輯被反向:

  • true = 高電平關閉LED,低電平開啟LED
  • false = 高電平開啟LED,低電平關閉LED

◆ vOutput

hal::digital::GeneralOutput& ufm::hw::SimpleLED::vOutput

LED輸出介面

用於控制LED硬體的數位輸出介面參考

◆ vTimer

ufm::util::ElapsedTimer ufm::hw::SimpleLED::vTimer

LED控制計時器

用於控制LED閃爍時序和狀態轉換的經過時間計時器


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