... Das man OCR1A nur setzen kann wenn der Timer nicht läuft, bezweifle ich sehr stark ...
GUTE Zweifel! Dieses Verfahren wäre ja auch äusserst unpraktisch. Aber SACO sollte ja wirklich den Timerabschnitt im Datenblatt lesen. (Das Arbeiten mit Mikrocontrollern ohne zutreffendem Datenblatt gehört zu den letzten großen Abenteuern unserer Tage *gg*)

Besonderes aufmerksam diese Stelle und deren Kontext davor und danach:
Zitat Zitat von Datenblatt ATmega48A/.../328/P ... 8271E–AVR–07/2012... 16.9.2
... ... However, changing the TOP to a value close to BOTTOM when the counter is running with none or a low prescaler value must be done with care since the CTC mode does not have the double buffering feature. If the new value written to OCR1A or ICR1 is lower than the current value of TCNT1, the counter will miss the compare match ... ...