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;
};