Timer1 hat einen Modus, inder er immer einen Interrupt auslöst, wenn der Wert von Timer1 (TCNT1) mit OCR1A (Output Compare Register 1A) übereinstimmt. Wenn man zusätzlich CTC1 (Clear Timer on Compare Match) aktiviert hat, wird beim Erreichen des Wertes der Zähler wieder auf 0 zurückgesetzt. Damit vermeidet man Ungenauigkeiten wie sie entstehen, wenn man selber den Timerwert zurücksetzt.

Den Interrupt den ich verwende heisst "Timer/Counter1 Compare Match A".
Die Anzeige aktualisiere ich in diesem Interrupt, der mit einer Rate von 10kHz kommt. Alle 100 Interrupt-Ereignisse erledige ich das Zeug, das nur alle 10 ms dran kommen muss. In dem Interrupt mach ich auch die Frequenz für nen kleinen Lautsprecher (Rückmeldung für Tastendruck), allerdings nur bei 2-3kHz. Die verschiedenen Frequenzen von 3kHz oder 100Hz realisiere ich einfach über Zählvariablen, die ich hochzähle.
Für den 100Hz-Interrupt wird eine Variable auf 0 gesetzt und in jedem Interrupt eins erhöht. Bin ich bei 100, dann wird sie auf 0 zurückgesetzt und der Job, der alle 10ms dran ist, ausgeführt.