Ich denke schon. Kannst das natürlich auch irgendwie noch
kaskadieren, entweder per Hardware (OC-Ausgang als Eingang für
nächsten Zähler) oder per Software mittels Interrupt, da mußt Du
dann nur sicherstellen, daß der Aufruf der Interruptroutinen
innerhalb des Intervalls garantierbar ist.
Im letzten Projekt, wo ich sowas benötigt habe, habe ich einen
Timer im CTC-Modus mit 16 kHz tickern lassen, dessen OC-Interrupt
dann softwaremäßig durch 160 nachgeteilt worden ist, um auf 10 ms
timer tick rate (100 Hz) zu kommen. Damit wurde dann ein komplexeres
Zeitgebersystem gesteuert, bei dem ich intern beliebig Software-
Zeitgeber parallel aktivieren kann, die dann beim Erreichen der
Zeit ein Software-Ereignis auslösen. Damit lassen sich mit einer
Granularität von 10 ms praktisch beliebige weitere Zeiten generieren,
z. B. 50 ms für eine Tasterentprellung, 250 ms für das Feststellen,
ob der Taster länger gedrückt worden ist usw. usf. Die 16 kHz
waren notwendig, weil der erste Zeitgeber nur ein 8-bittiger ist
und weil kein Vorteiler benutzt werden konnte (wegen der Quarz-
frequenz). Angenehmer Seiteneffekt: die 16 kHz sind schnell genug,
daß man sie noch gut messen kann am OC-Ausgang (mit einem
Zählfrequenzmesser) und dann mit einem Trimmer den Quarz auf
Sollfrequenz ziehen kann.
Das bedeutet aber auch, daß keine andere Interruptroutine auch nur
annähernd an die 1/16 kHz =~ 62,5 µs Laufzeit herankommen darf
(oder sonst irgendwie die Interrupts für so lange blockiert
sein dürfen), andernfalls gehen Primärinterrupts verloren. Die
Laufzeit dieser Interruptroutine kostet eben auch schon einen
nicht unbeachtlichen Anteil an Gesamt-CPU.