#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "driver/gpio.h"
#include "esp_rom_sys.h"
#define LED_BLUE 6
#define LED_GREEN 5
#define LED_RED 18
#define LED_ORANGE 19
void FlashGreenLedTask(void *pvParameter);
void FlashRedLedTask(void *pvParameter);
void app_main() {
printf("Hello, Wokwi!\n");
gpio_reset_pin(LED_BLUE);
gpio_set_direction(LED_BLUE, GPIO_MODE_OUTPUT);
gpio_set_level(LED_BLUE, 0);
gpio_reset_pin(LED_GREEN);
gpio_set_direction(LED_GREEN, GPIO_MODE_OUTPUT);
gpio_set_level(LED_GREEN, 0);
gpio_reset_pin(LED_RED);
gpio_set_direction(LED_RED, GPIO_MODE_OUTPUT);
gpio_set_level(LED_RED, 0);
gpio_reset_pin(LED_ORANGE);
gpio_set_direction(LED_ORANGE, GPIO_MODE_OUTPUT);
gpio_set_level(LED_ORANGE, 0);
xTaskCreate(&FlashRedLedTask, "FlashRedLedTask", 2048, NULL, 1, NULL);
xTaskCreate(&FlashGreenLedTask, "FlashGreenLedTask", 2048, NULL, 5, NULL);
// while (true) {
// gpio_set_level(INISRPIN, 0);
// esp_rom_delay_us(1000000);
// vTaskDelay(1000 / portTICK_PERIOD_MS);
// gpio_set_level(INISRPIN, 1);
// vTaskDelay(1000 / portTICK_PERIOD_MS);
// }
}
void FlashGreenLedTask(void *pvParameter)
{
while (1)
{
gpio_set_level(LED_BLUE, 0);
for (uint32_t i = 0; i < 60; i++) {
gpio_set_level(LED_GREEN, 0);
// vTaskDelay(25 / portTICK_PERIOD_MS);
esp_rom_delay_us(25000);
gpio_set_level(LED_GREEN, 1);
// vTaskDelay(25 / portTICK_PERIOD_MS);
esp_rom_delay_us(25000);
}
gpio_set_level(LED_BLUE, 1);
gpio_set_level(LED_GREEN, 1);
vTaskDelay(6000 / portTICK_PERIOD_MS);
}
}
void FlashRedLedTask(void *pvParameter)
{
while (1)
{
gpio_set_level(LED_ORANGE, 0);
for (uint32_t i = 0; i < 20; i++) {
gpio_set_level(LED_RED, 0);
esp_rom_delay_us(25000);
// vTaskDelay(25 / portTICK_PERIOD_MS);
gpio_set_level(LED_RED, 1);
esp_rom_delay_us(25000);
// vTaskDelay(25 / portTICK_PERIOD_MS);
}
gpio_set_level(LED_RED, 1);
gpio_set_level(LED_ORANGE, 1);
vTaskDelay(2000 / portTICK_PERIOD_MS);
}
}