Hallo schwenk,
wie du schon richtig erkannt hast, wird dir Variable 72000 mal pro Sekunde erhöht. Das passiert in der Interrupt Routine
SIGNAL (SIG_OUTPUT_COMPARE2)
Da die Variable nur ein character groß ist (1Byte) ist count72kHz nach 256 Erhöhungen (entspricht ca. 3,5ms) wieder bei 0 angelangt.
Um größere Zeiten zu messen mußt du die Überläufe (wenn count72kHz von 255 auf 0 zurückspringt) in einer extra Variablen hochzählen.
Dazu muß die Asuro Lib (asuro.c) folgendermaßen geändert werden:
Code:
unsigned long timebase;
SIGNAL (SIG_OUTPUT_COMPARE2)
{
count72kHz ++;
if (!count72kHz) timebase ++;
}
Oder du guckst dir die erweiterte Asuro Bibliothek an. Dort gibt es das schon alles.
Gruß Peter
Lesezeichen