Skip to content

Commit dd73c16

Browse files
committed
updated BacklightRGB
1 parent b5c364c commit dd73c16

File tree

1 file changed

+41
-33
lines changed

1 file changed

+41
-33
lines changed

src/BacklightRGB.cpp

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88

99
#include "BacklightRGB.h"
1010

11+
#if defined(ESP_ARDUINO_VERSION)
12+
#define USING_ARDUINO_ESP32
13+
#if (ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(3, 0, 0))
14+
#define ESP32_NEW_PWM
15+
#endif
16+
#endif
1117

1218
BacklightRGB::BacklightRGB(uint8_t redPin, uint8_t greenPin, uint8_t bluePin) {
1319
_redPin = redPin; _greenPin = greenPin; _bluePin = bluePin;
@@ -24,28 +30,29 @@ BacklightRGB::BacklightRGB(uint8_t redPin, uint8_t greenPin, uint8_t bluePin, bo
2430
}
2531

2632
void BacklightRGB::begin() {
27-
#ifdef ESP32
28-
// Updated from 2.x
29-
// ledcSetup(0, 5000, 8); ///< Channel 0, 5 kHz frequency, 8-bit resolution
30-
// ledcSetup(1, 5000, 8); ///< Channel 1, 5 kHz frequency, 8-bit resolution
31-
// ledcSetup(2, 5000, 8); ///< Channel 2, 5 kHz frequency, 8-bit resolution
32-
33-
// ledcAttachPin(_redPin, 0); ///< Attach red pin to channel 0
34-
// ledcAttachPin(_greenPin, 1); ///< Attach green pin to channel 1
35-
// ledcAttachPin(_bluePin, 2); ///< Attach blue pin to channel 2
36-
37-
// to 3.x
38-
ledcAttach(_redPin, 5000, 8); ///< red pin, 5 kHz frequency, 8-bit resolution
39-
ledcAttach(_greenPin, 5000, 8); ///< green pin, 5 kHz frequency, 8-bit resolution
40-
ledcAttach(_bluePin, 5000, 8); ///< blue pin, 5 kHz frequency, 8-bit resolution
33+
#ifdef USING_ARDUINO_ESP32
34+
#ifdef ESP32_NEW_PWM
35+
// ESP32 Arduino core 3.x+
36+
ledcAttach(_redPin, 5000, 8);
37+
ledcAttach(_greenPin, 5000, 8);
38+
ledcAttach(_bluePin, 5000, 8);
39+
#else
40+
// ESP32 Arduino core 2.x
41+
ledcSetup(0, 5000, 8); ///< Channel 0, 5 kHz frequency, 8-bit resolution
42+
ledcSetup(1, 5000, 8); ///< Channel 1, 5 kHz frequency, 8-bit resolution
43+
ledcSetup(2, 5000, 8); ///< Channel 2, 5 kHz frequency, 8-bit resolution
44+
ledcAttachPin(_redPin, 0); ///< Attach red pin to channel 0
45+
ledcAttachPin(_greenPin, 1); ///< Attach green pin to channel 1
46+
ledcAttachPin(_bluePin, 2); ///< Attach blue pin to channel 2
47+
#endif
4148
#else
42-
// Default setup for non-ESP32 boards
4349
pinMode(_redPin, OUTPUT);
4450
pinMode(_greenPin, OUTPUT);
4551
pinMode(_bluePin, OUTPUT);
4652
#endif
4753
}
4854

55+
4956
void BacklightRGB::setBrightness(uint8_t brightness) {
5057
_brightness = constrain(brightness, 0, 255);
5158
showRGB(_currentColor[0], _currentColor[1], _currentColor[2]);
@@ -104,26 +111,27 @@ uint8_t BacklightRGB::setColor(uint8_t color) {
104111
}
105112

106113
void BacklightRGB::showRGB(uint8_t red, uint8_t green, uint8_t blue) {
107-
_currentColor[0] = red;
108-
_currentColor[1] = green;
109-
_currentColor[2] = blue;
110-
111-
#ifdef ESP32
112-
// Updated from 2.x
113-
// ledcWrite(0, setColor(red)); ///< Write red value to channel 0
114-
// ledcWrite(1, setColor(green)); ///< Write green value to channel 1
115-
// ledcWrite(2, setColor(blue)); ///< Write blue value to channel 2
116-
117-
// to 3.x
118-
ledcWrite(_redPin, setColor(red));
119-
ledcWrite(_greenPin, setColor(green));
120-
ledcWrite(_bluePin, setColor(blue));
114+
_currentColor[0] = red;
115+
_currentColor[1] = green;
116+
_currentColor[2] = blue;
117+
118+
#ifdef USING_ARDUINO_ESP32
119+
#ifdef ESP32_NEW_PWM
120+
// Arduino 3.x+
121+
ledcWrite(_redPin, setColor(red));
122+
ledcWrite(_greenPin, setColor(green));
123+
ledcWrite(_bluePin, setColor(blue));
121124
#else
122-
// Use analogWrite for non-ESP32 boards
123-
analogWrite(_redPin, setColor(red));
124-
analogWrite(_greenPin, setColor(green));
125-
analogWrite(_bluePin, setColor(blue));
125+
// Arduino 2.x
126+
ledcWrite(0, setColor(red));
127+
ledcWrite(1, setColor(green));
128+
ledcWrite(2, setColor(blue));
126129
#endif
130+
#else
131+
analogWrite(_redPin, setColor(red));
132+
analogWrite(_greenPin, setColor(green));
133+
analogWrite(_bluePin, setColor(blue));
134+
#endif
127135
}
128136

129137
const uint8_t* BacklightRGB::getRGB() const {

0 commit comments

Comments
 (0)