FastLED 3.9.15
Loading...
Searching...
No Matches
fl::Timeout Class Reference

Detailed Description

Generic timeout timer with rollover-safe arithmetic.

Tracks elapsed time using provided timestamps. Time units are determined by the caller (microseconds, milliseconds, clock ticks, etc.).

Handles uint32_t rollover correctly - works across 0xFFFFFFFF → 0x00000000 boundary.

Example with microseconds:

Timeout timeout(micros(), 50); // 50 microseconds duration
while (!timeout.done(micros())) {
// Wait for timeout to complete
}
Timeout() FL_NOEXCEPT
Default constructor - creates an already-expired timeout.
Definition timeout.h:42
fl::u32 micros()
Universal microsecond timer - returns microseconds since system startup.

Example with milliseconds:

Timeout timeout(millis(), 1000); // 1 second duration
while (!timeout.done(millis())) {
// Wait for timeout to complete
}
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.

Definition at line 39 of file timeout.h.

#include <timeout.h>

Public Member Functions

 Timeout () FL_NOEXCEPT
 Default constructor - creates an already-expired timeout.
 
 Timeout (u32 start_time, u32 duration)
 Construct a timeout with specified start time and duration.
 
bool done (u32 current_time) const
 Check if the timeout has completed.
 
u32 elapsed (u32 current_time) const
 Get elapsed time since timeout started.
 
void reset (u32 start_time)
 Reset the timeout to start counting from specified time.
 
void reset (u32 start_time, u32 duration)
 Reset with a new start time and duration.
 

Private Attributes

u32 mDuration
 Timeout duration.
 
u32 mStartTime
 Start timestamp.
 

The documentation for this class was generated from the following file: