mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-09 13:07:03 +03:00
fix expander as output (works now on 9535)
This commit is contained in:
@@ -181,9 +181,9 @@ bool led_config(int idx, gpio_num_t gpio, int onstate, int pwm) {
|
|||||||
leds[idx].onstate = onstate;
|
leds[idx].onstate = onstate;
|
||||||
leds[idx].pwm = -1;
|
leds[idx].pwm = -1;
|
||||||
|
|
||||||
if (pwm < 0) {
|
if (pwm < 0 || gpio >= GPIO_NUM_MAX) {
|
||||||
gpio_pad_select_gpio(gpio);
|
if (gpio < GPIO_NUM_MAX) gpio_pad_select_gpio(gpio);
|
||||||
gpio_set_direction(gpio, GPIO_MODE_OUTPUT);
|
gpio_set_direction_u(gpio, GPIO_MODE_OUTPUT);
|
||||||
} else {
|
} else {
|
||||||
leds[idx].channel = pwm_system.base_channel++;
|
leds[idx].channel = pwm_system.base_channel++;
|
||||||
leds[idx].pwm = pwm_system.max * powf(pwm / 100.0, 3);
|
leds[idx].pwm = pwm_system.max * powf(pwm / 100.0, 3);
|
||||||
|
|||||||
@@ -43,12 +43,12 @@ void set_power_gpio(int gpio, char *value) {
|
|||||||
bool parsed = true;
|
bool parsed = true;
|
||||||
|
|
||||||
if (!strcasecmp(value, "vcc") ) {
|
if (!strcasecmp(value, "vcc") ) {
|
||||||
gpio_pad_select_gpio(gpio);
|
if (gpio < GPIO_NUM_MAX) gpio_pad_select_gpio(gpio);
|
||||||
gpio_set_direction(gpio, GPIO_MODE_OUTPUT);
|
gpio_set_direction_u(gpio, GPIO_MODE_OUTPUT);
|
||||||
gpio_set_level_u(gpio, 1);
|
gpio_set_level_u(gpio, 1);
|
||||||
} else if (!strcasecmp(value, "gnd")) {
|
} else if (!strcasecmp(value, "gnd")) {
|
||||||
gpio_pad_select_gpio(gpio);
|
if (gpio < GPIO_NUM_MAX) gpio_pad_select_gpio(gpio);
|
||||||
gpio_set_direction(gpio, GPIO_MODE_OUTPUT);
|
gpio_set_direction_u(gpio, GPIO_MODE_OUTPUT);
|
||||||
gpio_set_level_u(gpio, 0);
|
gpio_set_level_u(gpio, 0);
|
||||||
} else parsed = false;
|
} else parsed = false;
|
||||||
|
|
||||||
|
|||||||
@@ -178,8 +178,8 @@ static void set_amp_gpio(int gpio, char *value) {
|
|||||||
amp_control.gpio = gpio;
|
amp_control.gpio = gpio;
|
||||||
if ((p = strchr(value, ':')) != NULL) amp_control.active = atoi(p + 1);
|
if ((p = strchr(value, ':')) != NULL) amp_control.active = atoi(p + 1);
|
||||||
|
|
||||||
gpio_pad_select_gpio(amp_control.gpio);
|
if (amp_control.gpio < GPIO_NUM_MAX) gpio_pad_select_gpio(amp_control.gpio);
|
||||||
gpio_set_direction(amp_control.gpio, GPIO_MODE_OUTPUT);
|
gpio_set_direction_u(amp_control.gpio, GPIO_MODE_OUTPUT);
|
||||||
gpio_set_level_u(amp_control.gpio, !amp_control.active);
|
gpio_set_level_u(amp_control.gpio, !amp_control.active);
|
||||||
|
|
||||||
LOG_INFO("setting amplifier GPIO %d (active:%d)", amp_control.gpio, amp_control.active);
|
LOG_INFO("setting amplifier GPIO %d (active:%d)", amp_control.gpio, amp_control.active);
|
||||||
|
|||||||
Reference in New Issue
Block a user