#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);
}
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
r1:1
r1:2
led1:A
led1:C