Forum: Mikrocontroller und Digitale Elektronik bascom* komische timer ergebnisse...


von gerd schroer (Gast)


Lesenswert?

tag,
ich habe hier ein merkwürdiges problem (oder ist es kein problem?)
also, ich habe beim timer als prescaler 8 eingestellt. d.h. alle
0,512ms müsste ein timerinterrupt passieren (bei einem 4mhz-quarz).
nun wollte ich mein programm mit dem dcf-signal synchronisieren und
stelle fest, dass mein atmel zwischen zwei sekundenimpulsen ~2930
timerinterrupts zählt. das ist eine ziemliche abweichung vom
errechneten wert von 1953 interrupts...
kann mir das jemand erklären?
hier ein code-auszug:

cbyTempB = 0
cdwSekunde = 0
timer0 = 0
cdwTimer0 = 0
cdwTempA = 0
for cbyTempB = 1 to 3
    do
    loop until pinc.3 = 0
    do
    loop until pinc.3 = 1
    start TIMER0
    do
    loop until pinc.3 = 0
    do
    loop until pinc.3 = 1
    stop TIMER0
    cdwSekunde = cdwSekunde + cdwTimer0
    cdwSekunde = cdwSekunde / cbyTempB
    cdwTempA = cdwTempA + 1
next
lcd cdwsekunde

von gerd schroer (Gast)


Lesenswert?

... hat sich erledigt...
cdwTimer0 und timer0 in der for..next schleife auf 0 setzen, und den
durchschnitt der drei messungen ausserhalb der schleife berechnen, und
schon erhält man einen cdwTimer0 wert von ~1956...
gg

gruss
gerd

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.