mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-07 12:07:09 +03:00
finalize esp32 vs esp32-s3 single sourceset
This commit is contained in:
@@ -19,6 +19,12 @@
|
|||||||
#include "gds.h"
|
#include "gds.h"
|
||||||
#include "gds_private.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_Device Display;
|
||||||
static struct GDS_BacklightPWM PWMConfig;
|
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 = {
|
ledc_timer_config_t PWMTimer = {
|
||||||
.duty_resolution = LEDC_TIMER_13_BIT,
|
.duty_resolution = LEDC_TIMER_13_BIT,
|
||||||
.freq_hz = 5000,
|
.freq_hz = 5000,
|
||||||
.speed_mode = LEDC_HIGH_SPEED_MODE,
|
.speed_mode = LEDC_SPEED_MODE,
|
||||||
.timer_num = PWMConfig.Timer,
|
.timer_num = PWMConfig.Timer,
|
||||||
};
|
};
|
||||||
ledc_timer_config(&PWMTimer);
|
ledc_timer_config(&PWMTimer);
|
||||||
@@ -188,7 +194,7 @@ bool GDS_Init( struct GDS_Device* Device ) {
|
|||||||
.channel = Device->Backlight.Channel,
|
.channel = Device->Backlight.Channel,
|
||||||
.duty = Device->Backlight.PWM,
|
.duty = Device->Backlight.PWM,
|
||||||
.gpio_num = Device->Backlight.Pin,
|
.gpio_num = Device->Backlight.Pin,
|
||||||
.speed_mode = LEDC_HIGH_SPEED_MODE,
|
.speed_mode = LEDC_SPEED_MODE,
|
||||||
.hpoint = 0,
|
.hpoint = 0,
|
||||||
.timer_sel = PWMConfig.Timer,
|
.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 );
|
if (Device->SetContrast) Device->SetContrast( Device, Contrast );
|
||||||
else if (Device->Backlight.Pin >= 0) {
|
else if (Device->Backlight.Pin >= 0) {
|
||||||
Device->Backlight.PWM = PWMConfig.Max * powf(Contrast / 255.0, 3);
|
Device->Backlight.PWM = PWMConfig.Max * powf(Contrast / 255.0, 3);
|
||||||
ledc_set_duty( LEDC_HIGH_SPEED_MODE, Device->Backlight.Channel, Device->Backlight.PWM );
|
ledc_set_duty( LEDC_SPEED_MODE, Device->Backlight.Channel, Device->Backlight.PWM );
|
||||||
ledc_update_duty( LEDC_HIGH_SPEED_MODE, Device->Backlight.Channel );
|
ledc_update_duty( LEDC_SPEED_MODE, Device->Backlight.Channel );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,12 @@
|
|||||||
#define MAX_LED 8
|
#define MAX_LED 8
|
||||||
#define BLOCKTIME 10 // up to portMAX_DELAY
|
#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 const char *TAG = "led";
|
||||||
|
|
||||||
static EXT_RAM_ATTR struct led_s {
|
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) {
|
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);
|
if (led->pwm < 0 || led->gpio >= GPIO_NUM_MAX) gpio_set_level_x(led->gpio, on ? led->onstate : !led->onstate);
|
||||||
else {
|
else {
|
||||||
ledc_set_duty(LEDC_HIGH_SPEED_MODE, led->channel, on ? led->pwm : (led->onstate ? 0 : pwm_system.max));
|
ledc_set_duty(LEDC_SPEED_MODE, led->channel, on ? led->pwm : (led->onstate ? 0 : pwm_system.max));
|
||||||
ledc_update_duty(LEDC_HIGH_SPEED_MODE, led->channel);
|
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);
|
leds[idx].pwm = pwm_system.max * powf(pwm / 100.0, 3);
|
||||||
if (!leds[idx].onstate) leds[idx].pwm = pwm_system.max - leds[idx].pwm;
|
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_set_duty(LEDC_SPEED_MODE, leds[idx].channel, leds[idx].pwm);
|
||||||
ledc_update_duty(LEDC_HIGH_SPEED_MODE, leds[idx].channel);
|
ledc_update_duty(LEDC_SPEED_MODE, leds[idx].channel);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -193,7 +199,7 @@ bool led_config(int idx, gpio_num_t gpio, int onstate, int pwm) {
|
|||||||
.channel = leds[idx].channel,
|
.channel = leds[idx].channel,
|
||||||
.duty = leds[idx].pwm,
|
.duty = leds[idx].pwm,
|
||||||
.gpio_num = gpio,
|
.gpio_num = gpio,
|
||||||
.speed_mode = LEDC_HIGH_SPEED_MODE,
|
.speed_mode = LEDC_SPEED_MODE,
|
||||||
.hpoint = 0,
|
.hpoint = 0,
|
||||||
.timer_sel = pwm_system.timer,
|
.timer_sel = pwm_system.timer,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -133,7 +133,11 @@ void services_init(void) {
|
|||||||
ledc_timer_config_t pwm_timer = {
|
ledc_timer_config_t pwm_timer = {
|
||||||
.duty_resolution = LEDC_TIMER_13_BIT,
|
.duty_resolution = LEDC_TIMER_13_BIT,
|
||||||
.freq_hz = 5000,
|
.freq_hz = 5000,
|
||||||
|
#ifdef CONFIG_IDF_TARGET_ESP32S3
|
||||||
|
.speed_mode = LEDC_LOW_SPEED_MODE,
|
||||||
|
#else
|
||||||
.speed_mode = LEDC_HIGH_SPEED_MODE,
|
.speed_mode = LEDC_HIGH_SPEED_MODE,
|
||||||
|
#endif
|
||||||
.timer_num = pwm_system.timer,
|
.timer_num = pwm_system.timer,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user