#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <driver/gpio.h>
#define LED_RED GPIO_NUM_5
#define LED_GREEN GPIO_NUM_2
#define LED_BLUE GPIO_NUM_4
void task_red_led(void *pvParameter)
{
while(1) {
gpio_set_level(LED_RED, 1);
vTaskDelay(pdMS_TO_TICKS(500));
gpio_set_level(LED_RED, 0);
vTaskDelay(pdMS_TO_TICKS(500));
}
}
void task_green_led(void *pvParameter)
{
while(1) {
gpio_set_level(LED_GREEN, 1);
vTaskDelay(pdMS_TO_TICKS(1000));
gpio_set_level(LED_GREEN, 0);
vTaskDelay(pdMS_TO_TICKS(1000));
}
}
void task_blue_led(void *pvParameter)
{
while(1) {
gpio_set_level(LED_BLUE, 1);
vTaskDelay(pdMS_TO_TICKS(2000));
gpio_set_level(LED_BLUE, 0);
vTaskDelay(pdMS_TO_TICKS(2000));
}
}
void setup() {
gpio_pad_select_gpio(LED_RED);
gpio_pad_select_gpio(LED_GREEN);
gpio_pad_select_gpio(LED_BLUE);
gpio_set_direction(LED_RED, GPIO_MODE_OUTPUT);
gpio_set_direction(LED_GREEN, GPIO_MODE_OUTPUT);
gpio_set_direction(LED_BLUE, GPIO_MODE_OUTPUT);
xTaskCreate(task_red_led, "Red LED Task", configMINIMAL_STACK_SIZE, NULL, 1, NULL);
xTaskCreate(task_green_led, "Green LED Task", configMINIMAL_STACK_SIZE, NULL, 2, NULL);
xTaskCreate(task_blue_led, "Blue LED Task", configMINIMAL_STACK_SIZE, NULL, 3, NULL);
}
void loop() {
// Tidak perlu ada kode di sini
}