#include <LiquidCrystal.h>
// Definir el pin analógico que se va a leer
const int rs = 10, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 =2;
LiquidCrystal lcd (rs , en , d4, d5, d6, d7);
int timer = 0;
int timer2=0;
bool state = 0;
int intervalo = 1000;
void setup (){
pinMode(13, OUTPUT );
lcd.begin(16, 2);
// Inicializa el pin del LED como salida
TCCR0A = (1 << WGM01); // Establece el modo CTC del timer0
OCR0A = 0xF9; // Establece el valor para 1ms
TIMSK0 |= (1 << OCIE0A); // Establece la solicitud de interrupción cuando el valor del temporizador coincide con el valor en OCR0A
sei (); // Habilita las interrupciones
TCCR0B |= (1 << CS01 ); // Establece el prescaler a 1/64 de reloj
TCCR0B |= (1 << CS00);
}
void loop (){
if (timer >= intervalo ){
state = !state;
timer = 0;
timer2++;
lcd.setCursor(4,0);
lcd.print(timer2);
lcd.setCursor(7,0);
lcd.print("SEGUNDOS");
}
}
ISR(TIMER0_COMPA_vect) { // Solicitud de interrupción
timer++;
TCNT1 = 0xC2F8;
digitalWrite (13, state); // Enciende o apaga el LED
}