const int led = 5; //PORTB
volatile unsigned int centesimas = 0;
unsigned int curret_time = 0;
void config_timer(){
/*Reloj interno = 8MHz , 500ms
Configurarn en MODO CTC, N=1024, OCR0A=38
f = (Clock_in)/[2(N)(1+ OCR0X)]
f = 100Hz
*/
TCCR0A = (1<<WGM01); //Sin salida de compaadaro, modo = CTC
TCCR0B = (0<<CS02)|(1<<CS01)|(0<<CS00); // N(preescaler) = 1024;
OCR0A = 38;
TCNT0 = 0;
TIMSK0 = (1<<OCIE0A); //Habilitando interripcion en coparacion A
sei(); //hablita interucines
}
void config_gpio(){
DDRB |= (1<<led); //conf como salida
PORTB &= ~(1<<led); //ini apagado
}
void setup() {
config_timer();
config_gpio();
}
void loop() {
if ((centesimas - curret_time)>= 50 ){
PORTB ^= (1<<led);
curret_time = centesimas;
}
}
ISR(TIMER0_COMPA_vect){
centesimas++;
}