From 01c8cae0dcf59267e856ea5734ca7ed4bc259278 Mon Sep 17 00:00:00 2001 From: Richard Strassheim <49469623+iTacco@users.noreply.github.com> Date: Sat, 17 Apr 2021 01:06:58 +0200 Subject: [PATCH] Added method to change the ledc PWM frequency programmatically (#5003) Added method to change the ledc PWM frequence programmatically Returning frequency from ledcChangeFrequency --- cores/esp32/esp32-hal-ledc.c | 9 +++++++++ cores/esp32/esp32-hal-ledc.h | 1 + 2 files changed, 10 insertions(+) diff --git a/cores/esp32/esp32-hal-ledc.c b/cores/esp32/esp32-hal-ledc.c index e755f064..5881b400 100644 --- a/cores/esp32/esp32-hal-ledc.c +++ b/cores/esp32/esp32-hal-ledc.c @@ -318,3 +318,12 @@ void ledcDetachPin(uint8_t pin) { pinMatrixOutDetach(pin, false, false); } + +double ledcChangeFrequency(uint8_t chan, double freq, uint8_t bit_num) +{ + if (chan > 15) { + return 0; + } + double res_freq = _ledcSetupTimerFreq(chan, freq, bit_num); + return res_freq; +} diff --git a/cores/esp32/esp32-hal-ledc.h b/cores/esp32/esp32-hal-ledc.h index 159f98d5..1d640b32 100644 --- a/cores/esp32/esp32-hal-ledc.h +++ b/cores/esp32/esp32-hal-ledc.h @@ -35,6 +35,7 @@ uint32_t ledcRead(uint8_t channel); double ledcReadFreq(uint8_t channel); void ledcAttachPin(uint8_t pin, uint8_t channel); void ledcDetachPin(uint8_t pin); +double ledcChangeFrequency(uint8_t channel, double freq, uint8_t resolution_bits); #ifdef __cplusplus