From e09837158c368aaf1e412d54fe175980215006b0 Mon Sep 17 00:00:00 2001 From: philippe44 Date: Thu, 31 Aug 2023 21:26:27 -0700 Subject: [PATCH] finalize esp32 vs esp32-s3 single sourceset --- components/display/core/gds.c | 14 ++++++++++---- components/services/led.c | 16 +++++++++++----- components/services/services.c | 4 ++++ 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/components/display/core/gds.c b/components/display/core/gds.c index 910f874f..e2479f49 100644 --- a/components/display/core/gds.c +++ b/components/display/core/gds.c @@ -19,6 +19,12 @@ #include "gds.h" #include "gds_private.h" +#ifdef CONFIG_IDF_TARGET_ESP32S3 +#define LEDC_SPEED_MODE LEDC_LOW_SPEED_MODE +#else +#define LEDC_SPEED_MODE LEDC_HIGH_SPEED_MODE +#endif + static struct GDS_Device Display; static struct GDS_BacklightPWM PWMConfig; @@ -34,7 +40,7 @@ struct GDS_Device* GDS_AutoDetect( char *Driver, GDS_DetectFunc* DetectFunc[], s ledc_timer_config_t PWMTimer = { .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 5000, - .speed_mode = LEDC_HIGH_SPEED_MODE, + .speed_mode = LEDC_SPEED_MODE, .timer_num = PWMConfig.Timer, }; ledc_timer_config(&PWMTimer); @@ -188,7 +194,7 @@ bool GDS_Init( struct GDS_Device* Device ) { .channel = Device->Backlight.Channel, .duty = Device->Backlight.PWM, .gpio_num = Device->Backlight.Pin, - .speed_mode = LEDC_HIGH_SPEED_MODE, + .speed_mode = LEDC_SPEED_MODE, .hpoint = 0, .timer_sel = PWMConfig.Timer, }; @@ -231,8 +237,8 @@ void GDS_SetContrast( struct GDS_Device* Device, uint8_t Contrast ) { if (Device->SetContrast) Device->SetContrast( Device, Contrast ); else if (Device->Backlight.Pin >= 0) { Device->Backlight.PWM = PWMConfig.Max * powf(Contrast / 255.0, 3); - ledc_set_duty( LEDC_HIGH_SPEED_MODE, Device->Backlight.Channel, Device->Backlight.PWM ); - ledc_update_duty( LEDC_HIGH_SPEED_MODE, Device->Backlight.Channel ); + ledc_set_duty( LEDC_SPEED_MODE, Device->Backlight.Channel, Device->Backlight.PWM ); + ledc_update_duty( LEDC_SPEED_MODE, Device->Backlight.Channel ); } } diff --git a/components/services/led.c b/components/services/led.c index fe48d7fd..b4200f7d 100644 --- a/components/services/led.c +++ b/components/services/led.c @@ -27,6 +27,12 @@ #define MAX_LED 8 #define BLOCKTIME 10 // up to portMAX_DELAY +#ifdef CONFIG_IDF_TARGET_ESP32S3 +#define LEDC_SPEED_MODE LEDC_LOW_SPEED_MODE +#else +#define LEDC_SPEED_MODE LEDC_HIGH_SPEED_MODE +#endif + static const char *TAG = "led"; static EXT_RAM_ATTR struct led_s { @@ -57,8 +63,8 @@ static int led_max = 2; static void set_level(struct led_s *led, bool on) { if (led->pwm < 0 || led->gpio >= GPIO_NUM_MAX) gpio_set_level_x(led->gpio, on ? led->onstate : !led->onstate); else { - ledc_set_duty(LEDC_HIGH_SPEED_MODE, led->channel, on ? led->pwm : (led->onstate ? 0 : pwm_system.max)); - ledc_update_duty(LEDC_HIGH_SPEED_MODE, led->channel); + ledc_set_duty(LEDC_SPEED_MODE, led->channel, on ? led->pwm : (led->onstate ? 0 : pwm_system.max)); + ledc_update_duty(LEDC_SPEED_MODE, led->channel); } } @@ -139,8 +145,8 @@ bool led_brightness(int idx, int pwm) { leds[idx].pwm = pwm_system.max * powf(pwm / 100.0, 3); if (!leds[idx].onstate) leds[idx].pwm = pwm_system.max - leds[idx].pwm; - ledc_set_duty(LEDC_HIGH_SPEED_MODE, leds[idx].channel, leds[idx].pwm); - ledc_update_duty(LEDC_HIGH_SPEED_MODE, leds[idx].channel); + ledc_set_duty(LEDC_SPEED_MODE, leds[idx].channel, leds[idx].pwm); + ledc_update_duty(LEDC_SPEED_MODE, leds[idx].channel); return true; } @@ -193,7 +199,7 @@ bool led_config(int idx, gpio_num_t gpio, int onstate, int pwm) { .channel = leds[idx].channel, .duty = leds[idx].pwm, .gpio_num = gpio, - .speed_mode = LEDC_HIGH_SPEED_MODE, + .speed_mode = LEDC_SPEED_MODE, .hpoint = 0, .timer_sel = pwm_system.timer, }; diff --git a/components/services/services.c b/components/services/services.c index f11fcf27..e4fa5e6f 100644 --- a/components/services/services.c +++ b/components/services/services.c @@ -133,7 +133,11 @@ void services_init(void) { ledc_timer_config_t pwm_timer = { .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 5000, +#ifdef CONFIG_IDF_TARGET_ESP32S3 + .speed_mode = LEDC_LOW_SPEED_MODE, +#else .speed_mode = LEDC_HIGH_SPEED_MODE, +#endif .timer_num = pwm_system.timer, };