Bascom Zeitbaasis

Gast #128527
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
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

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.