disable old led port when changing port, #2389

This commit is contained in:
MichaelDvP
2025-02-03 09:18:41 +01:00
parent 5b07309939
commit ad71773293

View File

@@ -549,15 +549,20 @@ void System::button_init(bool refresh) {
// set the LED to on or off when in normal operating mode // set the LED to on or off when in normal operating mode
void System::led_init(bool refresh) { void System::led_init(bool refresh) {
if (refresh) { if (refresh) {
// disabled old led port before setting new one
if ((led_gpio_ != 0) && is_valid_gpio(led_gpio_)) {
led_type_ ? neopixelWrite(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON);
pinMode(led_gpio_, INPUT);
}
reload_settings(); reload_settings();
} }
if ((led_gpio_ != 0) && is_valid_gpio(led_gpio_)) { if ((led_gpio_ != 0) && is_valid_gpio(led_gpio_)) { // 0 means disabled
if (led_type_) { if (led_type_) {
// rgb LED WS2812B, use Adafruit Neopixel // rgb LED WS2812B, use Neopixel
neopixelWrite(led_gpio_, 0, 0, 0); neopixelWrite(led_gpio_, 0, 0, 0);
} else { } else {
pinMode(led_gpio_, OUTPUT); // 0 means disabled pinMode(led_gpio_, OUTPUT);
digitalWrite(led_gpio_, !LED_ON); // start with LED off digitalWrite(led_gpio_, !LED_ON); // start with LED off
} }
} }