FastLED 3.10.8
Loading...
Searching...
No Matches
fl::channels::rx Namespace Reference

Classes

class  Ws2812StreamDecoder
 Streaming decoder over (rise, fall) capture pairs. More...
 

Functions

fl::result< u32, DecodeError > decodeFlexPwmEdges (const ChipsetTiming4Phase &timing, fl::span< const EdgeTime > edges, fl::span< u8 > bytes_out) FL_NO_EXCEPT
 Batch decoder over an edge list (HIGH, LOW, HIGH, ... with a LOW left out after a gap).
 
fl::result< u32, DecodeError > decodeWs2812Edges (const ChipsetTiming4Phase &timing, fl::span< const EdgeTime > edges, fl::span< u8 > out) FL_NO_EXCEPT
 Decode a WS2812 edge-pair stream into bytes.
 
u32 flexPwmAdaptiveMidpointNs (const ChipsetTiming4Phase &timing, u32 high_min, u32 high_max, u32 samples) FL_NO_EXCEPT
 #3416 adaptive midpoint: (min + max) / 2 of the observed HIGH widths once there are enough samples spread wide enough to trust; else the static one.
 
int flexPwmBitFromHigh (u32 high_ns, const ChipsetTiming4Phase &timing) FL_NO_EXCEPT
 Bit from a HIGH whose LOW was a gap/reset or was not captured: range check against the T0H / T1H windows.
 
int flexPwmBitFromMidpoint (u32 high_ns, u32 midpoint_ns) FL_NO_EXCEPT
 Bit from a HIGH followed by a normal LOW: HIGH-only midpoint split.
 
bool flexPwmIsMidpointSample (u32 high_ns) FL_NO_EXCEPT
 Whether a HIGH width contributes to the adaptive-midpoint pre-pass (idle and glitch widths are excluded).
 
u32 flexPwmNsPerTickQ16 (u32 counter_hz) FL_NO_EXCEPT
 Q16.16 ns-per-tick for a counter clock.
 
u32 flexPwmStaticMidpointNs (const ChipsetTiming4Phase &timing) FL_NO_EXCEPT
 Static threshold between a 0 and a 1 HIGH: midpoint of T0H max / T1H min.
 
u32 flexPwmTickDeltaNs (u16 t0, u16 t1, u32 ns_per_tick_q16) FL_NO_EXCEPT
 Convert a 16-bit capture-counter delta to ns.
 

Variables

constexpr u32 kFlexPwmGapNs = 5000
 A LOW longer than this ends the bit without a LOW edge (gap or reset).