Bei den meisten 16 Bit registern stellt GCC auch schon den direkten zugriff als 16 Bit wert zu verfügung.
Also geht entweder TCNT1 oder TCNT1L und TCNT1H seperat. Wobei der direkte 16 Bit-wert praktischer ist.


Wenn man es richtig machen will sollte man erst den Timer 1 Stoppen, und dann duch SEI/CLI eventuell noch ausstehenden Interrupt einfügen. Sonst hat man kaum einen wirklich definierten Stopzeitpunkt und kann trotzdem noch einen Überlauf genau auf der Grenze kriegen.

Was definitiv noch fehlt, ist es overflow0 zurückzusetzen. Auch verstehe ich das "TCNT0 = 192" nicht. So viel Unterschied sollte in der initialisierung nicht zustandekommen.