fix led not turning off
This commit is contained in:
@@ -18,4 +18,12 @@ menu "Calendink LED Configuration"
|
||||
default 21
|
||||
help
|
||||
GPIO pin for the LED.
|
||||
|
||||
config CALENDINK_LED_ACTIVE_LOW
|
||||
bool "LED is Active Low (0 turns it ON)"
|
||||
depends on CALENDINK_LED_TYPE_SIMPLE
|
||||
default y
|
||||
help
|
||||
Select this if your LED turns ON when the GPIO is driven low (0V).
|
||||
Many development boards wire LEDs between VCC and the GPIO pin, making them active low.
|
||||
endmenu
|
||||
|
||||
+20
-14
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user