Vielen Dank für deine Antwort.

Leider sind meine Programmierkenntnisse (noch) ziemlich rudimentär, daher kann ich deiner Erklärung nicht so ganz folgen.
Zitat Zitat von Besserwessi
Die Zugriffe auf die Variable Zähler sind nicht atomar. Es kann also passieren, das high und low Bytes nicht zusammengehören.
Zugriffe auf Zaehler müßte man also immer in CLI / SEI einschließen.
Der Begriff "atomar" sagt mir nichts. Liegt das Problem darin, dass ein Interrupt auftritt, wenn der Zugriff auf die Variable noch nicht fertig ist?
Damit die Zeiten besser stimmen sollte man beim Timer wenn irgendmöglich den CTC modus wählen, dann summieren sich Verzögerungen beim ISR-aufruf nicht auf.
Warum stimmen die Zeiten im CTC Modus besser?

Durch Einfügen von CLI und SEI sind die Ergebnisse schon mal besser geworden.
Nun werde ich noch versuchen in den CTC Modus umzustellen.

Gruss
M.