FastLED 3.9.15
Loading...
Searching...
No Matches

◆ wave8_transpose_2()

FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void fl::detail::wave8_transpose_2 ( const Wave8Byte lane_waves[2],
u8 output[2 *sizeof(Wave8Byte)] )

Transpose 2 lanes of Wave8Byte data into interleaved format.

Parameters
lane_wavesArray of 2 Wave8Byte structures (lane[0]=even bits, lane[1]=odd bits)
outputOutput buffer (16 bytes)

Definition at line 103 of file wave8.hpp.

104 {
105 for (int symbol_idx = 0; symbol_idx < 8; symbol_idx++) {
106 u16 interleaved = 0;
107 // NOTE: FL_WAVE8_SPREAD_TO_16 macro treats first param as ODD bits, second as EVEN bits
108 // This matches wave8Untranspose_2 expectations: lane[0]→odd, lane[1]→even
109 FL_WAVE8_SPREAD_TO_16(lane_waves[0].symbols[symbol_idx].data,
110 lane_waves[1].symbols[symbol_idx].data,
111 interleaved);
112
113 output[symbol_idx * 2] = (u8)(interleaved >> 8); // High byte first (MSB pulses 4-7)
114 output[symbol_idx * 2 + 1] = (u8)(interleaved & 0xFF); // Low byte second (LSB pulses 0-3)
115 }
116}
unsigned char u8
Definition stdint.h:131
#define FL_WAVE8_SPREAD_TO_16(lane_u8_0, lane_u8_1, out_16)
Definition wave8.hpp:81

References FL_WAVE8_SPREAD_TO_16.

Referenced by fl::wave8Transpose_2(), and fl::wave8Transpose_2().

+ Here is the caller graph for this function: