#define LED_PIN 8
#define UL unsigned long

UL prev = millis();

volatile int count = 100;

void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
  ovfSetup();
}

void loop() {
  if(!count) {
    UL now = millis();
    digitalWrite(LED_PIN, !digitalRead(LED_PIN));
    String status = digitalRead(LED_PIN) ? "ON" : "OFF";
    Serial.println("LED " + status);
    Serial.println("TIME SINCE LAST T2 OVF: " + String(now - prev) + "ms" + "\n");
    prev = now;
    count = 100;
  }
}

void ovfSetup() {
  TCCR2A = 0;           // Init Timer2A
  TCCR2B = 0;           // Init Timer2B
  TCCR2B |= B00000111;  // Prescaler = 1024
  TCNT2 = 99;        // Timer Preloading
  TIMSK2 |= B00000001;  // Enable Timer Overflow Interrupt
}

ISR(TIMER2_OVF_vect) {
  TCNT2 = 99;
  count--;
}