#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/timers.h"
#include "driver/gpio.h"
#define LED_BUILTIN 18
int timeInterval = 500;
int idTimer = 1;
uint8_t ledLevel = 0;
TimerHandle_t xTimer;
esp_err_t init_gpio(void);
esp_err_t init_timer(void);
esp_err_t blink_led(void);
void vTimerLedCallback(TimerHandle_t pxTimer){
blink_led();
printf("led estate is: %d \n ", ledLevel);
}
esp_err_t blink_led(void){
ledLevel = !ledLevel;
gpio_set_level(LED_BUILTIN, ledLevel);
return ESP_OK;
}
esp_err_t init_gpio(void){
gpio_reset_pin(LED_BUILTIN);
gpio_set_direction(LED_BUILTIN, GPIO_MODE_OUTPUT);
return ESP_OK;
}
esp_err_t init_timer(){
xTimer = xTimerCreate("timer led",
pdMS_TO_TICKS(timeInterval),
pdTRUE,
(void*) idTimer,
vTimerLedCallback);
if(xTimer == NULL){
printf("No se pudo crear el timer!");
}
else{
if(xTimerStart(xTimer, 0) != pdPASS){
printf("No se pudo iniciar el timer!");
}
}
return ESP_OK;
}
void app_main() {
init_gpio();
init_timer();
printf("Hello, Wokwi!\n");
while (true) {
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}