PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : setzen einer Variable nach ablauf einer bestimmten Zeit



mat-sche
07.12.2008, 10:41
Hallo Leute,

ich lasse einen Timer sec. laufen, jetzt möchte ich eine Flag aller 5sec. setzen. Wie kann ich das am besten lösen?
Oder wie kann ich den Ausdruck: 5 mal größer als Timer etc. proggen?

Danke & Gruß MAT

StevieL
07.12.2008, 10:51
Hallo,

ich weiß zwar nicht, was ein Timer sec. sein soll, aber ich mutmaße jetzt einfach mal, dass du einen Timer so eingestellt hast, dass der jede Sekunde einmal überläuft. Jetzt packst du in die ISR eine Zählervariable, die pro Timerüberlauf hochgezählt wird.




incr Zählervariable
if Zählervariable = 5 then
Flag = 1
Zählervariable = 0
end if

mat-sche
07.12.2008, 11:12
Hallo Stefan,

es hat klick gemacht, im Grunde hast Du mir schon die richtige Richtung gezeigt um mein Problem zu bewältigen.
Gibt es bei Bascom eine Möglichkeit irgendwie eine Formel zu schreiben, die aussagt 5 X größer als....?

StevieL
07.12.2008, 11:22
Hallo Mat,

ja klar, das geht! Nennt sich Multiplikation. :cheesy:

mat-sche
07.12.2008, 11:41
Klar, aber wie wird es codetechnisch umgesetzt?

StevieL
07.12.2008, 12:25
Wie bitte? Na so: B = 5 * A.

Ich verstehe nur nicht, wie du damit einen Timer abfragen willst. Oder was du eigentlich vor hast...

peterfido
07.12.2008, 23:45
Ich habe vor einiger Zeit mal jemandem bei einer Blinkerschaltung geholfen, der Code könnte dir evtl weiterhelfen. Such einfach mal nach Tickcount Das Thema war wait Anweisung durch IRQ unterbrechen.