Closed cat-in-136 closed 2 years ago
Rewritting Ws2812Esp32RmtItemEncoder::encode()
as following code resolves the crush issue itself. But pixel are lit with random colors; i.e. phenomenon is changed.
fn encode(&self, src_slice: &[u8], dest_slice: &mut [rmt_item32_t]) {
for (k, &v) in src_slice.iter().enumerate() {
for i in 0..(u8::BITS as usize) {
dest_slice[k * (u8::BITS as usize) + i].__bindgen_anon_1.val =
if v & (1 << (7 - i)) != 0 {
self.bit1
} else {
self.bit0
};
}
}
}
Crash occurred by running
cargo espflash --example=m5atom_smart_leds
on M5 Atom Pixel/Lite.Error log.
Environment: