diff options
author | kb-elmo <lorwel@mailbox.org> | 2021-01-15 22:42:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-16 08:42:30 +1100 |
commit | 3d70766327422bcd918b6940298f7557ab10d248 (patch) | |
tree | 4f1c68b3b48030116f939c835dd045f30d2ea41a /drivers/chibios/ws2812_pwm.c | |
parent | 0bf0977c02816c12fffc3fd75c11f66d044e0c20 (diff) | |
download | qmk_firmware-3d70766327422bcd918b6940298f7557ab10d248.tar.gz qmk_firmware-3d70766327422bcd918b6940298f7557ab10d248.zip |
Add BGR byte order for WS2812 drivers (#11562)
* add byte order bgr for ws2812
* update docs for driver change
* Update ws2812_driver.md
* Update docs/ws2812_driver.md
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'drivers/chibios/ws2812_pwm.c')
-rw-r--r-- | drivers/chibios/ws2812_pwm.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/drivers/chibios/ws2812_pwm.c b/drivers/chibios/ws2812_pwm.c index 3af922c06..140120d48 100644 --- a/drivers/chibios/ws2812_pwm.c +++ b/drivers/chibios/ws2812_pwm.c | |||
@@ -180,6 +180,43 @@ | |||
180 | * @return The bit index | 180 | * @return The bit index |
181 | */ | 181 | */ |
182 | # define WS2812_BLUE_BIT(led, bit) WS2812_BIT((led), 2, (bit)) | 182 | # define WS2812_BLUE_BIT(led, bit) WS2812_BIT((led), 2, (bit)) |
183 | |||
184 | #elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR) | ||
185 | /** | ||
186 | * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given red bit | ||
187 | * | ||
188 | * @note The red byte is the middle byte in the color packet | ||
189 | * | ||
190 | * @param[in] led: The led index [0, @ref RGBLED_NUM) | ||
191 | * @param[in] bit: The bit number [0, 7] | ||
192 | * | ||
193 | * @return The bit index | ||
194 | */ | ||
195 | # define WS2812_RED_BIT(led, bit) WS2812_BIT((led), 2, (bit)) | ||
196 | |||
197 | /** | ||
198 | * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given green bit | ||
199 | * | ||
200 | * @note The red byte is the first byte in the color packet | ||
201 | * | ||
202 | * @param[in] led: The led index [0, @ref RGBLED_NUM) | ||
203 | * @param[in] bit: The bit number [0, 7] | ||
204 | * | ||
205 | * @return The bit index | ||
206 | */ | ||
207 | # define WS2812_GREEN_BIT(led, bit) WS2812_BIT((led), 1, (bit)) | ||
208 | |||
209 | /** | ||
210 | * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given blue bit | ||
211 | * | ||
212 | * @note The red byte is the last byte in the color packet | ||
213 | * | ||
214 | * @param[in] led: The led index [0, @ref RGBLED_NUM) | ||
215 | * @param[in] bit: The bit index [0, 7] | ||
216 | * | ||
217 | * @return The bit index | ||
218 | */ | ||
219 | # define WS2812_BLUE_BIT(led, bit) WS2812_BIT((led), 0, (bit)) | ||
183 | #endif | 220 | #endif |
184 | 221 | ||
185 | /* --- PRIVATE VARIABLES ---------------------------------------------------- */ | 222 | /* --- PRIVATE VARIABLES ---------------------------------------------------- */ |