diff options
author | Josh Hinnebusch <joshhinnebusch@gmail.com> | 2020-12-06 01:15:48 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-06 17:15:48 +1100 |
commit | c59f87a5d73a2d8a2085663ae329c4d7c75c83e3 (patch) | |
tree | b1778e21ae0dd43261e79cbca5d2779a35b96627 /quantum/color.h | |
parent | 08bf9f9e740a741d674585b5920e4c3a107825b9 (diff) | |
download | qmk_firmware-c59f87a5d73a2d8a2085663ae329c4d7c75c83e3.tar.gz qmk_firmware-c59f87a5d73a2d8a2085663ae329c4d7c75c83e3.zip |
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 'quantum/color.h')
-rw-r--r-- | quantum/color.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/quantum/color.h b/quantum/color.h index 5c5a0f0eb..f0ee78275 100644 --- a/quantum/color.h +++ b/quantum/color.h | |||
@@ -36,20 +36,38 @@ | |||
36 | # define LED_TYPE RGB | 36 | # define LED_TYPE RGB |
37 | #endif | 37 | #endif |
38 | 38 | ||
39 | // WS2812 specific layout | 39 | #define WS2812_BYTE_ORDER_RGB 0 |
40 | #define WS2812_BYTE_ORDER_GRB 1 | ||
41 | |||
42 | #ifndef WS2812_BYTE_ORDER | ||
43 | # define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB | ||
44 | #endif | ||
45 | |||
40 | typedef struct PACKED { | 46 | typedef struct PACKED { |
47 | #if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) | ||
41 | uint8_t g; | 48 | uint8_t g; |
42 | uint8_t r; | 49 | uint8_t r; |
43 | uint8_t b; | 50 | uint8_t b; |
51 | #elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) | ||
52 | uint8_t r; | ||
53 | uint8_t g; | ||
54 | uint8_t b; | ||
55 | #endif | ||
44 | } cRGB; | 56 | } cRGB; |
45 | 57 | ||
46 | typedef cRGB RGB; | 58 | typedef cRGB RGB; |
47 | 59 | ||
48 | // WS2812 specific layout | 60 | // WS2812 specific layout |
49 | typedef struct PACKED { | 61 | typedef struct PACKED { |
62 | #if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) | ||
50 | uint8_t g; | 63 | uint8_t g; |
51 | uint8_t r; | 64 | uint8_t r; |
52 | uint8_t b; | 65 | uint8_t b; |
66 | #elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) | ||
67 | uint8_t r; | ||
68 | uint8_t g; | ||
69 | uint8_t b; | ||
70 | #endif | ||
53 | uint8_t w; | 71 | uint8_t w; |
54 | } cRGBW; | 72 | } cRGBW; |
55 | 73 | ||