230 {
232
233 for (int symbol_idx = 0; symbol_idx < 3; symbol_idx++) {
234 u8 lane_bytes[8] = {0, 0, 0, 0, 0, 0, 0, 0};
235
236
237
238 for (int byte_idx = 0; byte_idx < 8; byte_idx++) {
239 u8 input_byte = transposed[symbol_idx * 8 + byte_idx];
240
241 int pulse_bit = 7 - byte_idx;
242
243 for (int lane = 0; lane < 8; lane++) {
244 u8 pulse = (input_byte >> lane) & 1;
245 lane_bytes[lane] |= (pulse << pulse_bit);
246 }
247 }
248
249 for (int lane = 0; lane < 8; lane++) {
250 lane_waves[lane].
data[symbol_idx] = lane_bytes[lane];
251 }
252 }
253
254 for (int lane = 0; lane < 8; lane++) {
256 }
257}
FL_OPTIMIZE_FUNCTION FL_IRAM FASTLED_FORCE_INLINE void memcopy(void *FL_RESTRICT_PARAM dst, const void *FL_RESTRICT_PARAM src, size_t num_bytes)
ISR-optimized memcpy with alignment detection and switch dispatch.
Type-safe container for 3-byte wave pulse pattern (wave3 encoding)