#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
static void led_pin_init()
{
gpio_config_t led_cfgs = {
.pin_bit_mask = 1ULL<<GPIO_NUM_4 |1ULL<<GPIO_NUM_5|1ULL<<GPIO_NUM_6,
.mode = GPIO_MODE_INPUT_OUTPUT
};
gpio_config(&led_cfgs);
gpio_set_level(GPIO_NUM_4,0);
gpio_set_level(GPIO_NUM_5,0);
gpio_set_level(GPIO_NUM_6,0);
}
static void led_red_entry(void* params)
{
while (1)
{
gpio_set_level(GPIO_NUM_4,!gpio_get_level(GPIO_NUM_4));
vTaskDelay(pdMS_TO_TICKS(2000));
}
vTaskDelete(NULL);
}
static void led_green_entry(void* params)
{
while (1)
{
gpio_set_level(GPIO_NUM_5,!gpio_get_level(GPIO_NUM_5));
vTaskDelay(pdMS_TO_TICKS(4000));
}
vTaskDelete(NULL);
}
static void led_blue_entry(void* params)
{
while (1)
{
gpio_set_level(GPIO_NUM_6,!gpio_get_level(GPIO_NUM_6));
vTaskDelay(pdMS_TO_TICKS(6000));
}
vTaskDelete(NULL);
}
void app_main(void)
{
led_pin_init();
xTaskCreate(
led_red_entry,
"LED_RED",
1024*2,
NULL,
1,
NULL
);
xTaskCreate(
led_green_entry,
"LED_GREEN",
1024*2,
NULL,
1,
NULL
);
xTaskCreate(
led_blue_entry,
"LED_BLUE",
1024*2,
NULL,
1,
NULL
);
}