Zitat von wkrug
Beispiel !!!
Startbedingung, Kanal 1 wird übertragen:
Comparematch Interupt tritt auf.
Der Impulsausgang wird auf 1 geschaltet.
Der TCNT wird ausgelesen, es werden die Counts bis zum nächsten Comparematch Interrupt ( sagen wir mal 1,8ms ) zu diesem Wert dazu gezählt.
Dieser Wert wird ins Comparemach Register eingespeichert.
Die Comparematch Interrupt routine wird verlassen.
Der nächste Comparematch Interupt tritt nach 1,8ms auf.
Der Impulsausgang wird auf 0 gesteuert.
Das TCNT Register wird ausgelesen.
Dazu werden die Counts bis zum nächsten gewünschten Interrupt dazu addiert - In Deinem Fall wären das 0,2ms.
Dieser Wert wird im Comparematch Register des Counters abgespeichert.
Der Impulszähler wird Inkrementiert.
Die Comparematch Interrupt routine wird verlassen.
Beim nächsten Comparematch Interrupt also nach 1,8+0,2ms gehts dann so weiter bis alle Impulse + Startpause übertragen wurden.
Dann wird einfach der Framecounter auf 0 gesetzt und das Spielchen beginnt von vorne.