arduino-esp32/cores/esp32/esp32-hal-rgb-led.h
Davide Perini 66c9c0b1a6
Add ability for boards to provide a custom pixel order in neopixelWrite() (#10128)
* fix(esp32): Fixed the hint for the builtin neopixleWrite() function

* change(esp32): Added neopixelWriteOrdered() function

* change(esp32): Added neopixelWriteOrdered() function

* change(esp32): Added neopixelWriteOrdered() function

* change(esp32): Added the possibility to specify LED color order

* change(esp32): Added the possibility to specify LED color order

* feat(rgbled): add license information

* feat(rgbled): add color order enum

* feat(rgbled): add color order feature

* feat(rgbled): change color order for lolin_s3_mini

* fix(rgbled): suffix

* fix(rgbled): suffix

* ci(pre-commit): Apply automatic fixes

* fix(rgbled): it lacks GRB case

Made GRB default + switch/case exceptions.

* fix(rgbled): add guard for rgb_led_color_order_t

If RGB_BUILTIN_LED_COLOR_ORDER is not defined, the type rgb_led_color_order_t won't be declared.

* fix(rgb-led): Implement rgbLedWriteOrdered()

* ci(pre-commit): Apply automatic fixes

* Remove const to allow changing the order

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: me-no-dev <hristo@espressif.com>
2024-08-20 01:29:13 +03:00

39 lines
901 B
C

#ifndef MAIN_ESP32_HAL_RGB_LED_H_
#define MAIN_ESP32_HAL_RGB_LED_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "esp32-hal.h"
#ifndef RGB_BRIGHTNESS
#define RGB_BRIGHTNESS 64
#endif
#ifndef RGB_BUILTIN_LED_COLOR_ORDER
#define RGB_BUILTIN_LED_COLOR_ORDER LED_COLOR_ORDER_GRB // default WS2812B color order
#endif
typedef enum {
LED_COLOR_ORDER_RGB,
LED_COLOR_ORDER_BGR,
LED_COLOR_ORDER_BRG,
LED_COLOR_ORDER_RBG,
LED_COLOR_ORDER_GBR,
LED_COLOR_ORDER_GRB
} rgb_led_color_order_t;
void rgbLedWriteOrdered(uint8_t pin, rgb_led_color_order_t order, uint8_t red_val, uint8_t green_val, uint8_t blue_val);
// Will use RGB_BUILTIN_LED_COLOR_ORDER
void rgbLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val);
// Backward compatibility
#define neopixelWrite(p, r, g, b) rgbLedWrite(p, r, g, b)
#ifdef __cplusplus
}
#endif
#endif /* MAIN_ESP32_HAL_RGB_LED_H_ */