summaryrefslogtreecommitdiff
path: root/drivers/chibios/ws2812.c
diff options
context:
space:
mode:
authorJosh Hinnebusch <joshhinnebusch@gmail.com>2020-12-06 01:15:48 -0500
committerDrashna Jael're <drashna@live.com>2021-01-12 22:46:07 -0800
commit99d80b2acb71cf23e957bad9c25017befa6d8537 (patch)
treec085711123cc82cb5972e4fe4640a66f8b1c9544 /drivers/chibios/ws2812.c
parentdc57b14a0a39a0169cb63bd00d5af1228458ca7a (diff)
add definition WS2812_BYTE_ORDER to fix RGB LED issues (#10184)
* add define for WS2812B-2020 to fix RGB issues * update driver doc * add WS2812_BYTE_ORDER definition to correct RGB byte issues * add definition variable thing * update per PR request * update per PR reqs * update per PR request * inital changes * move defines to color.h and add rgbw incase * Update docs/ws2812_driver.md Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: hineybush <hineybushkeyboards@gmail.com> Co-authored-by: Xelus22 <preyas22@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'drivers/chibios/ws2812.c')
-rw-r--r--drivers/chibios/ws2812.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/chibios/ws2812.c b/drivers/chibios/ws2812.c
index c2bec3fdc9..b5b02fdacd 100644
--- a/drivers/chibios/ws2812.c
+++ b/drivers/chibios/ws2812.c
@@ -89,9 +89,16 @@ void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) {
for (uint8_t i = 0; i < leds; i++) {
// WS2812 protocol dictates grb order
+#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB)
sendByte(ledarray[i].g);
sendByte(ledarray[i].r);
sendByte(ledarray[i].b);
+#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB)
+ sendByte(ledarray[i].r);
+ sendByte(ledarray[i].g);
+ sendByte(ledarray[i].b);
+#endif
+
#ifdef RGBW
sendByte(ledarray[i].w);
#endif