@Besserwessi
Es war zu Beginn etwas verwirrend, denn Timer hätte auch eine variable sein können. BTW, mit Semikolon ist es keine Präprozessoranweisung... Aber natürlich hast Du Recht, denn jetzt ist es klarer.

@hosti
Kommentier mal alles unnötige aus der ISR. Die wird alle 163 Takte aufgerufen! Möglicherweise gehen hier ein paar IRQs verloren... Dass der Compiler keine Warnungen meldet, wundert mich.
Besser noch: wähle wie oben beschrieben einen Prescaler von 8 und ändere die TCNT0 Werte.
Gruß