idfhack/main/task_blink.c
2025-07-06 13:41:29 +02:00

29 lines
673 B
C

#include "freertos/idf_additions.h"
#include "portmacro.h"
#include <driver/gpio.h>
#include <esp_rom_gpio.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#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);
}
}