Optimize ledstrip DMA buffer update to reduce task processing time
commite1f10b0430e736e67a806018ba019d7d116fcb05
authorBruce Luckcuck <github@etracer.net>
Thu, 5 Sep 2019 15:58:54 +0000 (5 11:58 -0400)
committerBruce Luckcuck <github@etracer.net>
Thu, 5 Sep 2019 20:10:19 +0000 (5 16:10 -0400)
tree940c344b2cf7c6ce124f4c5ff9a8e97abbc5aa17
parent62f0eb7ed3b5cac7924d8cf4ca58e2a282a785f7
Optimize ledstrip DMA buffer update to reduce task processing time
Previous logic was updating updating the DMA buffer for all possible LED positions (32) regardless of how many were used. Since there are 24 bytes per LED, this performed a lot of unnecessary processing in cases where the user had less than 32 LEDs configured.

Also includes a bug fix in that if the LED count was decreased (like making changed using the Configurator LED tab), the now unused LEDs at the end of the string would remain on at the last color applied. Now they will be properly turned off. The bug was minor as it was resolved by a reboot, but made setup using the Configurator confusing since changes made are reflected when the user clicked the "Save" button (which does not reboot).
src/main/drivers/light_ws2811strip.c
src/main/drivers/light_ws2811strip.h
src/main/io/ledstrip.c
src/test/unit/ledstrip_unittest.cc