#include <avr/io.h>
#include <avr/interrupt.h>

#define F_CPU 1600000UL
#include <util/delay.h>

volatile uint8_t counter = 0;

ISR(TIM0_COMPA_vect)
{
  counter++;
}

int main(void)
{
  // seta a porta B0 como saída
  DDRB |= (1 << DDB0);

  // configura o timer0
  TCCR0A |= (1 << WGM01); // modo CTC
  TCCR0B |= (1 << CS02) | (1 << CS00); // prescaler de 1024
  OCR0A = 156; // valor para gerar interrupção a cada 100ms
  TIMSK |= (1 << OCIE0A); // habilita a interrupção do timer0

  sei(); // habilita interrupções globais

  while (1)
  {
    if (counter >= 100) // acende o LED por 500ms
    {
      PORTB |= (1 << PB0);
      _delay_ms(500);
      PORTB &= ~(1 << PB0);
      counter = 0;
    }
  }

  return 0;
}
ATTINY8520PU