fix led not turning off

This commit is contained in:
2026-03-26 21:49:06 -04:00
parent 197f4a640c
commit dc935dd72d
2 changed files with 28 additions and 14 deletions
+20 -14
View File
@@ -15,6 +15,16 @@
#define LED_GPIO (gpio_num_t)CONFIG_CALENDINK_LED_GPIO
#if defined(CONFIG_CALENDINK_LED_TYPE_SIMPLE)
#if defined(CONFIG_CALENDINK_LED_ACTIVE_LOW)
#define SIMPLE_LED_ON 0
#define SIMPLE_LED_OFF 1
#else
#define SIMPLE_LED_ON 1
#define SIMPLE_LED_OFF 0
#endif
#endif
#if defined(CONFIG_CALENDINK_LED_TYPE_STRIP)
internal led_strip_handle_t led_strip;
#endif
@@ -34,25 +44,21 @@ void setup_led(void)
led_strip_new_rmt_device(&strip_config, &rmt_config, &led_strip));
led_strip_clear(led_strip);
led_strip_refresh(led_strip);
#elif defined(CONFIG_CALENDINK_LED_TYPE_SIMPLE)
gpio_reset_pin(LED_GPIO);
gpio_set_direction(LED_GPIO, GPIO_MODE_OUTPUT);
gpio_set_level(LED_GPIO, 0);
gpio_set_level(LED_GPIO, SIMPLE_LED_OFF);
#endif
}
void turn_off_led(void)
{
void turn_off_led(void)
{
#if defined(CONFIG_CALENDINK_LED_TYPE_STRIP)
led_strip_clear(led_strip);
led_strip_clear(led_strip);
led_strip_refresh(led_strip);
#elif defined(CONFIG_CALENDINK_LED_TYPE_SIMPLE)
gpio_set_level(LED_GPIO, 1);
vTaskDelay(pdMS_TO_TICKS(100));
gpio_set_level(LED_GPIO, 0);
vTaskDelay(pdMS_TO_TICKS(100));
gpio_set_level(LED_GPIO, 1);
vTaskDelay(pdMS_TO_TICKS(100));
gpio_set_level(LED_GPIO, 0);
gpio_set_level(LED_GPIO, SIMPLE_LED_OFF);
#endif
}
@@ -88,7 +94,7 @@ void set_led_status(led_status status)
case led_status::ReadyEthernet:
case led_status::ReadyWifi:
case led_status::Failed:
gpio_set_level(LED_GPIO, 1);
gpio_set_level(LED_GPIO, SIMPLE_LED_ON);
break;
}
#endif
@@ -102,14 +108,14 @@ void led_blink_number(int n, uint8_t r, uint8_t g, uint8_t b)
led_strip_set_pixel(led_strip, 0, r, g, b);
led_strip_refresh(led_strip);
#elif defined(CONFIG_CALENDINK_LED_TYPE_SIMPLE)
gpio_set_level(LED_GPIO, 1);
gpio_set_level(LED_GPIO, SIMPLE_LED_ON);
#endif
vTaskDelay(pdMS_TO_TICKS(300));
#if defined(CONFIG_CALENDINK_LED_TYPE_STRIP)
led_strip_clear(led_strip);
led_strip_refresh(led_strip);
#elif defined(CONFIG_CALENDINK_LED_TYPE_SIMPLE)
gpio_set_level(LED_GPIO, 0);
gpio_set_level(LED_GPIO, SIMPLE_LED_OFF);
#endif
vTaskDelay(pdMS_TO_TICKS(300));
}