Die Art wie Überläufe berücksichtigt werden sieht interessant aus - könnte aber fast funktionieren (2^16 ist einer mehr). Ein Problem gibt es ggf. mit einem Überlauf beim Ergebnis, da nur integer. Der grobe Fehler ist erst einmal das fehlende globale einschalten der Interrupts.

Schließlich gibt es ggf. noch eine seltenes Problem wenn der Timer Überlauf und der Int0/1 fast gleichzeitig kommen. Da ist es nicht so einfach zu entscheiden ob der Überlauf vor oder hinter dem Interrupt kommt. Ich fürchte der Prescaler von 64 reicht noch nicht aus um da seltene Fehler zu vermeiden. Wie das richtig gehen kann, steht im RN-Wissen unter Timer(AVR), da allerdings unter Ausnutzung der Hardware ICP Funktion.