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

◆ wave8Transpose_2() [1/2]

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

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

26 {
27 // Allocate waveform buffers on stack (16 Wave8Bit total: 8 packed bytes per lane × 2 lanes)
28 // Each Wave8Byte is 8 bytes (8 Wave8Bit × 1 byte each)
29 // Layout: [Lane0_bit7, Lane0_bit6, ..., Lane0_bit0, Lane1_bit7, Lane1_bit6, ..., Lane1_bit0]
30 Wave8Byte laneWaveformSymbols[2];
31
32 // Convert each lane byte to wave pulse symbols (8 packed bytes each)
33 detail::wave8_convert_byte_to_wave8byte(lanes[0], lut, &laneWaveformSymbols[0]);
34 detail::wave8_convert_byte_to_wave8byte(lanes[1], lut, &laneWaveformSymbols[1]);
35
36 // Transpose waveforms to DMA format (interleave 8 packed bytes to 16 bytes)
37 detail::wave8_transpose_2(laneWaveformSymbols, output);
38}
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
FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_2(const Wave8Byte lane_waves[2], u8 output[2 *sizeof(Wave8Byte)])
Transpose 2 lanes of Wave8Byte data into interleaved format.
Definition wave8.hpp:103

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

+ Here is the call graph for this function: