From b08dcb2da620de0d01c5c7a978d2950217d8d9c6 Mon Sep 17 00:00:00 2001 From: Richard Strassheim Date: Fri, 2 Apr 2021 00:54:45 +0200 Subject: [PATCH 1/4] Added method to change the ledc PWM frequence programmatically --- cores/esp32/esp32-hal-ledc.c | 8 ++++++++ cores/esp32/esp32-hal-ledc.h | 1 + 2 files changed, 9 insertions(+) diff --git a/cores/esp32/esp32-hal-ledc.c b/cores/esp32/esp32-hal-ledc.c index 24bbf329404..397e89d2438 100644 --- a/cores/esp32/esp32-hal-ledc.c +++ b/cores/esp32/esp32-hal-ledc.c @@ -278,3 +278,11 @@ void ledcDetachPin(uint8_t pin) { pinMatrixOutDetach(pin, false, false); } + +void ledcChangeFrequence(uint8_t chan, double freq, uint8_t bit_num) +{ + if (chan > 15) { + return 0; + } + _ledcSetupTimerFreq(chan, freq, bit_num); +} diff --git a/cores/esp32/esp32-hal-ledc.h b/cores/esp32/esp32-hal-ledc.h index 159f98d5351..f18fe2efad5 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); +void ledcChangeFrequence(uint8_t channel, double freq, uint8_t resolution_bits); #ifdef __cplusplus From 958e49a5c6441abde35d4954ac8c01b95fc7517e Mon Sep 17 00:00:00 2001 From: Richard Strassheim <49469623+iTacco@users.noreply.github.com> Date: Fri, 2 Apr 2021 17:44:38 +0200 Subject: [PATCH 2/4] fixed typo error frequence to frequency --- cores/esp32/esp32-hal-ledc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/esp32/esp32-hal-ledc.c b/cores/esp32/esp32-hal-ledc.c index 397e89d2438..18ac4ec090f 100644 --- a/cores/esp32/esp32-hal-ledc.c +++ b/cores/esp32/esp32-hal-ledc.c @@ -279,7 +279,7 @@ void ledcDetachPin(uint8_t pin) pinMatrixOutDetach(pin, false, false); } -void ledcChangeFrequence(uint8_t chan, double freq, uint8_t bit_num) +void ledcChangeFrequency(uint8_t chan, double freq, uint8_t bit_num) { if (chan > 15) { return 0; From c0cc424233f64413ac58329a50a8fcb7dfff8526 Mon Sep 17 00:00:00 2001 From: Richard Strassheim <49469623+iTacco@users.noreply.github.com> Date: Fri, 2 Apr 2021 17:45:10 +0200 Subject: [PATCH 3/4] fixed typo error frequence to frequency --- cores/esp32/esp32-hal-ledc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/esp32/esp32-hal-ledc.h b/cores/esp32/esp32-hal-ledc.h index f18fe2efad5..bbb18ba046c 100644 --- a/cores/esp32/esp32-hal-ledc.h +++ b/cores/esp32/esp32-hal-ledc.h @@ -35,7 +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); -void ledcChangeFrequence(uint8_t channel, double freq, uint8_t resolution_bits); +void ledcChangeFrequency(uint8_t channel, double freq, uint8_t resolution_bits); #ifdef __cplusplus From 8e7d9a8cfb193f5c71d83fe127741fd97970db3e Mon Sep 17 00:00:00 2001 From: Richard Strassheim Date: Fri, 16 Apr 2021 11:18:28 +0200 Subject: [PATCH 4/4] - Added return value to ledcChangeFrequency - Returning frequency from ledcChangeFrequency --- cores/esp32/esp32-hal-ledc.c | 5 +++-- cores/esp32/esp32-hal-ledc.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cores/esp32/esp32-hal-ledc.c b/cores/esp32/esp32-hal-ledc.c index 18ac4ec090f..582587ad68a 100644 --- a/cores/esp32/esp32-hal-ledc.c +++ b/cores/esp32/esp32-hal-ledc.c @@ -279,10 +279,11 @@ void ledcDetachPin(uint8_t pin) pinMatrixOutDetach(pin, false, false); } -void ledcChangeFrequency(uint8_t chan, double freq, uint8_t bit_num) +double ledcChangeFrequency(uint8_t chan, double freq, uint8_t bit_num) { if (chan > 15) { return 0; } - _ledcSetupTimerFreq(chan, freq, bit_num); + 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 bbb18ba046c..1d640b32eae 100644 --- a/cores/esp32/esp32-hal-ledc.h +++ b/cores/esp32/esp32-hal-ledc.h @@ -35,7 +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); -void ledcChangeFrequency(uint8_t channel, double freq, uint8_t resolution_bits); +double ledcChangeFrequency(uint8_t channel, double freq, uint8_t resolution_bits); #ifdef __cplusplus