> Damit sollte ich doch jede 10µsec. einen Output Compare interrupt
> haben oder nicht?
Ich denke schon. Beachte aber, daß du dann nicht viel in deiner
Interrupt-Routine tun darfst, da nur 40 Taktzyklen zur Verfügung
stehen, bevor der nächste Interrupt kommt. Davon gehen schon mal
mindestens 8 nur für die Interrupt-Behandlung selbst drauf (Sprung in
den Interrupt-Vektor und reti), dazu kommen nochmal 2 für's rjmp in
die eigentliche Interrupt-Routine. Der Compiler generiert für diese
einen Prolog, der ohne das Sichern der in der Interrupt-Routine
benutzten Register schon mal 8 Taktzyklen braucht. Der Epilog am Ende
braucht nochmal 7. Für jedes Register, das gesichert werden muß, kommen
nochmal 4 (2 im Prolog für push und 2 im Epilog für pop) dazu.
Wir sind also schon bei 25 Taktzyklen Minimum (Unter manchen Umständen
können es noch zwei oder drei mehr sein), ohne daß die
Interrupt-Routine überhaupt etwas tut. Ich denke, dein Problem ist, daß
deine Interrupt-Routine nicht rechtzeitig fertig wird und das dein
Timing durcheinanderbringt.
Ich verstehe aber nicht ganz, warum du überhaupt einen Zähler nur so
kurz laufen und dann einen Interrupt generieren läßt, nur um darin dann
per Software zu zählen.
Übrigens: Was für einen AVR verwendest du überhaupt?