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:
Oder du guckst dir die erweiterte Asuro Bibliothek an. Dort gibt es das schon alles.Code:unsigned long timebase; SIGNAL (SIG_OUTPUT_COMPARE2) { count72kHz ++; if (!count72kHz) timebase ++; }
Gruß Peter





.
Zitieren

Lesezeichen