Timer in Bascom

Gast #693197
hey leute, habe folgende frage und leider grad keinerlei möglichkeit es 
selbst zu testen.

wenn ein timer (in diesem fall timero) überläuft, springt er dann 
automatisch wieder auf 0 zurück oder ist er dann blockiert und mag net 
mehr arbeiten?

ich frage deshalb, da aus der bascom-hilfe usw. hervorgehen täte, dass 
man kein rücksetzen auf 0 in einer subroutine bräuchte, dies wird jedoch 
bei vielen beispielcodes trotzdem durchgeführt. daher die frage
-> braucht man das überhaupt?

und nun ins bett... ;)
Gast
mir ist schon klar, dass ich den überlauf erkennen kann. ;o)
es ging mir darum ob ich das bei überlauf in interrupt und interrupt 
setzt timer wieder auf 0 überhaupt benötige?
mehr tut der interrupt bei mir dann nicht, außer den timer wieder auf 0 
zu setzen, er zählt keine variablen da mein programm drumherum den 
direkten wert des timers ausliest.

stichwort software-pwm. timer0 zählt mit einem prescaler immer bis 255 
hoch und das programm schaltet meine ausgänge je nach inhalt des 
timerregisters. somit brauche ich keine zusätzlichen variablen.

also nochmals zur verdeutlichung folgende ablaufkette, bitte sagt mir 
welche >notwendig< ist:

1. config timer0, start timer0, on timer0 timer0 = 0

2. config timer0, start timer0

also wenn das timerregister wert 255 erreicht hat, springt dann der 
timer wieder VOLLautomatisch auf 0 und zählt wieder aufwärts oder bleibt 
er bei 255 oder 0 dann vorerst stehen?
Henning wrote:
> mir ist schon klar, dass ich den überlauf erkennen kann. ;o)
> es ging mir darum ob ich das bei überlauf in interrupt und interrupt
> setzt timer wieder auf 0 überhaupt benötige?

Welchen Teil des Satzes "Er zählt einfach weiter. Und da es in einem
8 Bit Timer kein 9. Bit gibt, gehts halt dann mit 0 weiter"
verstehst du nicht?

> mehr tut der interrupt bei mir dann nicht, außer den timer wieder auf 0
> zu setzen,

wozu hast du dann einen Interrupt installiert? Der Timer zählt
munter vor sich hin, und wenn er bei seiner höchsten Zahl angelangt
ist, gehts wieder bei 0 weiter.
Gast
bascom hat seine eigenarten.
du musst schon mal zusehen, das man lesbaren asm-code bekommt um den mal 
zu lokalisieren.
die config-einstellung macht darüber keine aussage.

am besten nach winavr-c umsatteln, da siehste was der atmega macht.
Hallo,

Der Timer springt in die Interruptroutine sobald der Timer überläuft. 
Dabei wird dieser gleich wieder auf 0 gesetzt, das geht in Bascom quasi 
"von allein".
Mit "On Timer1 <Subproggie_hier>" sagst du Bascom wo es sich 
hinzubegeben hat wenn der Timer beim Überlauf schreit. :)

Roland
Gast
>Der Timer springt in die Interruptroutine sobald der Timer überläuft.

Der Timer springt nirgendwo hin, es wird lediglich ein Interrupt 
ausgelöst.

>Dabei wird dieser gleich wieder auf 0 gesetzt, das geht in Bascom quasi
>"von allein".

Das hat mit Bascom überhaupt nichts zu tun, der Timer im µ läuft einfach
durch.
Hallo Jack,

daß der Timer durch den ausgelösten Overflow-Interrupt dafür sorgt daß 
das Programm in die ISR-Routine springt macht der natürlich nur wenn 
dies so mit dem Command "On TimerX <Sub> konfiguriert wird.
Das der Timer wieder auf 0 gesetzt wird meinte ich nicht Wörtlich, klar 
rennt der Timer durch, ich habe mich da vielleicht schlecht ausgedrückt, 
sorry.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.