#include "freertos/idf_additions.h" #include "portmacro.h" #include #include #include #include #include "tasks.h" QueueHandle_t blink_rate_q; void task_blink(void *pvParams) { u32 blink_delay = BLINK_DELAY; u32 new_delay = {}; u32 level = 1; esp_rom_gpio_pad_select_gpio(LED_PIN); gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT); while (1) { if (xQueueReceive(blink_rate_q, &new_delay, 0) == pdPASS) blink_delay = new_delay; level = !level; gpio_set_level(LED_PIN, level); vTaskDelay(blink_delay / portTICK_PERIOD_MS); } }