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

◆ wave8Transpose_16() [1/2]

void fl::wave8Transpose_16 ( const u8(&) lanes[16],
const Wave8BitExpansionLut & lut,
u8(&) output[16 *sizeof(Wave8Byte)] )

Definition at line 73 of file wave8.cpp.hpp.

75 {
76 // Allocate waveform buffers on stack (128 Wave8Bit total: 8 packed bytes per lane × 16 lanes)
77 Wave8Byte laneWaveformSymbols[16];
78
79 // Convert each lane byte to wave pulse symbols (8 packed bytes each)
80 for (int lane = 0; lane < 16; lane++) {
81 detail::wave8_convert_byte_to_wave8byte(lanes[lane], lut, &laneWaveformSymbols[lane]);
82 }
83
84 // Transpose waveforms to DMA format (interleave 128 packed bytes to 128 bytes)
85 detail::wave8_transpose_16(laneWaveformSymbols, output);
86}
FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_16(const Wave8Byte lane_waves[16], u8 output[16 *sizeof(Wave8Byte)])
Transpose 16 lanes of Wave8Byte data into interleaved format.
Definition wave8.hpp:231
FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_convert_byte_to_wave8byte(u8 byte_value, const Wave8BitExpansionLut &lut, Wave8Byte *output)
Helper: Convert byte to Wave8Byte using nibble LUT (internal use only)
Definition wave8.hpp:47

References FL_RESTRICT_PARAM, fl::detail::wave8_convert_byte_to_wave8byte(), and fl::detail::wave8_transpose_16().

+ Here is the call graph for this function: