hw_timer_t * timer = NULL; // declaramos nuestra variable de temporizador
volatile uint8_t ledstat = 0; // Declaramos nuestra variable como variable volatil es decir puede cambiar de manera inesperada
void IRAM_ATTR onTimer() //Creamos una función llamada "onTimer" que marque el inicio del temporizador
{
ledstat = 1-ledstat; //Hacemos el cambio entre 0 y 1 de acuerdo a los valores proporcionados en por lo demás procesos
digitalWrite(5,ledstat); //Nuestra rutina asigna el estado de nuestro pin de acuerdo a la temporización
}
void setup()
{
pinMode(5,OUTPUT); //Asignamos nuestro pin D5 como pin de salida
digitalWrite(5,LOW); //Asignamos el estado inicial de nuestro pin como Bajo (Apagado)
//Métodos necesarios para la ESP32
timer = timerBegin(0,80,true); //Hacemos la inicialización de nuestro temporizador con un valor inicial de 0, usando una preescala de 80 llevando a un periodo de 1 segundo y marcado como verdadero para que se active en modo ascendente
timerAttachInterrupt(timer,&onTimer,true); //Asignamos nuestra rutina que creamos en nuestro punto anterior, adjuntamos nuestro método onTimer y ponemos True para que se active
timerAlarmWrite(timer,1000000,true); //Configuramos nuestra alarma en un un segundo para que con nuestra rutina
timerAlarmEnable(timer); //finalmente activamos nuestra alarma
}
void loop()
{
}