Als Ansätze, wenn die Referenz/Comparepunkte an einem Timer nicht
ausreichen kann man diese meist wiederbenutzen, indem ein Interrupt auf
die Comparepunkte gesetzt wird und den Inhalt dieser Register
austauscht.
Beispiel: Initial sind die Comparezeiten A, B und C gesetzt. Bei
Erreichen der Marke A erzeugt die Hardware einen Pin-Toggle und einen
Interrupt. Dieser kann während weitergezählt wird die Comparezeit A
gegen D tauschen.
Das hat natürlich den Nachteil von deutlich gesteigerter Last für den
Prozessorkern, da er die zusätzlichen Interrupts schnell genug bedienen
muss.
Alternative bei Architekturen, wie dem MSP430 ist, Zyklen zählen. Da die
Ausführungszeit konstant gehalten werden kann zwischen der
Initialisierung zweier Timer und diese sich in der gleichen Taktdomäne
gewählt werden kann ist es auch möglich Zwei Timer mit einem konstanten
Versatz zu starten. Kann man zusätzlich einen Startwert vorgeben, der
nicht als Resetwert für den Timer doubelt, können sie sogar synchron
gestartet werden und du kannst die Compare-Möglichkeiten beider Timer
nutzen.