Bascom Zeitbaasis

Gast #128527
Lesenswert?

timer setzen und auf Interrupt "warten", in der Int. Routine den
Tmr-Counter entsprechend erhöhen und schon kommt der nächste Int. genau
eine Sek. später. Oder gleich mit Preload der Timer arbeiten, hängt halt
davon ab welchen uP du verwendest.

grüsse leo9
Gast #128528
Lesenswert?

Genau hierzu habe ich eine eigenartige Erfahrung gemacht.

Ich habe für dieses Problem den Timer1 vom ATMega8 genommen
(11,05920MHz)
In der ISR lade ich den Timer sofort mit
Load timer1 , 10800
den Timer neu und das gibt einen schönen sekundentakt.
ABER!!!
Am Start des Programmes mache ich das gleiche (LOAD ...), leider dauert
es bis zum ERSTEN Interrupt 6 sekunden (also ein kompletter Timer1
Überlauf), erst danach läuft der 1 Sekunden Takt

Ersetze ich allerdings das
"
LOAD TIMER1, 10800
"

durch

"
Tcnt1h = 214
Tcnt1l = 166
"
(also 65536 - 10800)
dann habe ich sofort den sekundentakt!

Warum gibt es einen Unterschied zwischen dem LOAD Befehl vonm BASCOM
und den direkten setzen der Register???

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren