فهرست منبع

finalize esp32 vs esp32-s3 single sourceset

philippe44 1 سال پیش
والد
کامیت
e09837158c
3فایلهای تغییر یافته به همراه25 افزوده شده و 9 حذف شده
  1. 10 4
      components/display/core/gds.c
  2. 11 5
      components/services/led.c
  3. 4 0
      components/services/services.c

+ 10 - 4
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 );		
 	}
 }
 

+ 11 - 5
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,
         };

+ 4 - 0
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,
 	};