From 91f8ba0e4da145a5c5552560687075afe468d65a Mon Sep 17 00:00:00 2001 From: norbert-walter Date: Fri, 13 Sep 2024 17:41:02 +0200 Subject: [PATCH] SPI for FastLED --- lib/obp60task/OBP60Extensions.cpp | 34 ++++++++++++++++++++----------- lib/obp60task/OBP60Extensions.h | 3 +++ lib/obp60task/PageVoltage.cpp | 3 +-- lib/obp60task/PageWindRose.cpp | 4 +--- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/lib/obp60task/OBP60Extensions.cpp b/lib/obp60task/OBP60Extensions.cpp index 8ad7c93..9496d70 100644 --- a/lib/obp60task/OBP60Extensions.cpp +++ b/lib/obp60task/OBP60Extensions.cpp @@ -1,6 +1,9 @@ #ifdef BOARD_OBP60S3 #include +#define FASTLED_ALL_PINS_HARDWARE_SPI +#define FASTLED_ESP32_SPI_BUS HSPI +#define FASTLED_ESP32_FLASH_LOCK 1 #include // Driver for WS2812 RGB LED #include // Driver for PCF8574 output modul from Horter #include // I2C @@ -110,15 +113,22 @@ CHSV colorMapping(String colorString){ // All defined colors see pixeltypes.h in FastLED lib void setBacklightLED(uint brightness, CHSV color){ - FastLED.setBrightness(255); // Brightness for flash LED - color.value = brightness; - backlight[0] = color; // Backlight LEDs on with color - backlight[1] = color; - backlight[2] = color; - backlight[3] = color; - backlight[4] = color; - backlight[5] = color; - FastLED.show(); + static uint oldbrightness; + static CHSV oldcolor; + // If changed the values then set new values + if(brightness != oldbrightness || color != oldcolor){ + FastLED.setBrightness(255); // Brightness for flash LED + color.value = brightness; + backlight[0] = color; // Backlight LEDs on with color + backlight[1] = color; + backlight[2] = color; + backlight[3] = color; + backlight[4] = color; + backlight[5] = color; + FastLED.show(); + oldbrightness = brightness; + oldcolor = color; + } } void toggleBacklightLED(uint brightness, CHSV color){ @@ -145,9 +155,9 @@ void toggleBacklightLED(uint brightness, CHSV color){ } void setFlashLED(bool status){ - statusLED = status; - FastLED.setBrightness(255); // Brightness for flash LED - if(statusLED == true){ + static bool oldstatus; + FastLED.setBrightness(255); // Brightness for flash LED + if(status == true){ fled[0] = CRGB::Red; // Flash LED on in red } else{ diff --git a/lib/obp60task/OBP60Extensions.h b/lib/obp60task/OBP60Extensions.h index 5f25564..66ae247 100644 --- a/lib/obp60task/OBP60Extensions.h +++ b/lib/obp60task/OBP60Extensions.h @@ -3,6 +3,9 @@ #include #include "OBP60Hardware.h" +#define FASTLED_ALL_PINS_HARDWARE_SPI +#define FASTLED_ESP32_SPI_BUS HSPI +#define FASTLED_ESP32_FLASH_LOCK 1 #include // Driver for WS2812 RGB LED #include // E-paper lib V2 diff --git a/lib/obp60task/PageVoltage.cpp b/lib/obp60task/PageVoltage.cpp index 71f3d02..36cba5b 100644 --- a/lib/obp60task/PageVoltage.cpp +++ b/lib/obp60task/PageVoltage.cpp @@ -262,8 +262,7 @@ public: } // Update display - while(getdisplay().nextPage()); // Partial update (fast) - while(getdisplay().nextPage()); // Partial update (fast) + getdisplay().nextPage(); // Partial update (fast) }; }; diff --git a/lib/obp60task/PageWindRose.cpp b/lib/obp60task/PageWindRose.cpp index 1d57617..df546f5 100644 --- a/lib/obp60task/PageWindRose.cpp +++ b/lib/obp60task/PageWindRose.cpp @@ -387,9 +387,7 @@ public: } // Update display - while(getdisplay().nextPage()); // Partial update (fast) - while(getdisplay().nextPage()); // Partial update (fast) - while(getdisplay().nextPage()); // Partial update (fast) + getdisplay().nextPage(); // Partial update (fast) }; };