From 2db113f1910715138e3e28b72f4f58b6a559bf5b Mon Sep 17 00:00:00 2001 From: Randall Bohn Date: Mon, 3 May 2021 07:15:39 -0600 Subject: [PATCH] esp32-s2: Don't set PWMOut frequency to 0 FeatherS2 crashes if you set the PWMOut frequency to 0. This change will raise `ValueError: Invalid PWM frequency` if the requested frequency is 0. (Lifted from the atmel-samd port) --- ports/esp32s2/common-hal/pwmio/PWMOut.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ports/esp32s2/common-hal/pwmio/PWMOut.c b/ports/esp32s2/common-hal/pwmio/PWMOut.c index d662e1dbef..07efeb4427 100644 --- a/ports/esp32s2/common-hal/pwmio/PWMOut.c +++ b/ports/esp32s2/common-hal/pwmio/PWMOut.c @@ -128,7 +128,13 @@ pwmout_result_t common_hal_pwmio_pwmout_construct(pwmio_pwmout_obj_t *self, if (ledc_channel_config(&(self->chan_handle))) { return PWMOUT_INITIALIZATION_ERROR; } - + + // check the frequency -- 0 is not valid + // maybe also want to reject frequency > system_clock / 2 ?? + if (frequency == 0) { + return PWMOUT_INVALID_FREQUENCY; + } + // Make reservations reserved_timer_freq[timer_index] = frequency; reserved_channels[channel_index] = timer_index;