From 7d65fb46a0ef69bbfd38b4ce885129945b8104dd Mon Sep 17 00:00:00 2001 From: DTTerastar Date: Tue, 6 Sep 2022 17:44:30 -0400 Subject: [PATCH] Misc fixes for ledc --- platformio.ini | 1 + src/defaults.h | 8 ++++++++ src/led/SinglePWM.cpp | 10 ++++++++-- src/led/SinglePWM.h | 2 ++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index 88b847f..f494dc8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -119,6 +119,7 @@ build_unflags = ${esp32c3.build_unflags} build_flags = -D FIRMWARE='"esp32c3"' -D SENSORS + -D ESP32C3 ${esp32c3.build_flags} [env:esp32-verbose] diff --git a/src/defaults.h b/src/defaults.h index b976141..ca2e696 100644 --- a/src/defaults.h +++ b/src/defaults.h @@ -71,6 +71,13 @@ #define DEFAULT_I2C_BUS_2_SCL 21 #define DEFAULT_I2C_BUS 1 #else +#ifdef ESP32C3 +#define DEFAULT_I2C_BUS_1_SDA 19 +#define DEFAULT_I2C_BUS_1_SCL 18 +#define DEFAULT_I2C_BUS_2_SDA -1 +#define DEFAULT_I2C_BUS_2_SCL -1 +#define DEFAULT_I2C_BUS 1 +#else #define DEFAULT_I2C_BUS_1_SDA 21 #define DEFAULT_I2C_BUS_1_SCL 22 #define DEFAULT_I2C_BUS_2_SDA -1 @@ -78,6 +85,7 @@ #define DEFAULT_I2C_BUS 1 #endif #endif +#endif // TSL2561 Defaults #define DEFAULT_TSL2561_I2C_GAIN "auto" diff --git a/src/led/SinglePWM.cpp b/src/led/SinglePWM.cpp index 9c95695..2ceef52 100644 --- a/src/led/SinglePWM.cpp +++ b/src/led/SinglePWM.cpp @@ -5,13 +5,19 @@ SinglePWM::SinglePWM(uint8_t index, ControlType controlType, bool inverted, int this->pin = pin; } -void SinglePWM::begin() { - ledcSetup(LED::getIndex(), 12000, 12); +void SinglePWM::init() { + inited = true; + pinMode(pin, OUTPUT); + ledcSetup(LED::getIndex(), 5000, 12); ledcAttachPin(pin, getIndex()); +} + +void SinglePWM::begin() { setDuty(LED::getBrightness()); } void SinglePWM::setDuty(uint32_t x) { + if (!inited) init(); uint32_t duty = x >= 255 ? 4096 : (x <= 0 ? 0 : round(4096.0 * pow(10.0, 0.0055 * (x - 255.0)))); if (inverted) duty = 4096 - duty; ledcWrite(LED::getIndex(), duty); diff --git a/src/led/SinglePWM.h b/src/led/SinglePWM.h index 52d51e0..7aa5d75 100644 --- a/src/led/SinglePWM.h +++ b/src/led/SinglePWM.h @@ -13,7 +13,9 @@ class SinglePWM : public LED { bool setBrightness(uint8_t brightness) override; private: + void init(); void setDuty(uint32_t value); bool inverted; int pin; + bool inited = false; };