PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timer - Ich checks nicht



kawamaha
14.05.2008, 11:02
vielleicht kann mir jemand mal erklären, wie man timer mit einer bedingung verknüpfen kann, so dass ich des auch kapier. konkretes beispiel: der timer soll beim überlauf ein byte raufzählen, aber nur, wenn eine taste gedrückt ist.
kann man in der normalen Do - Loop routine den timer abfragen oder oder in der Timer routine irgendwie ein "if" einbauen? ich komm einfach nicht weiter [-o<

Jaecko
14.05.2008, 13:58
DIM byByte as Byte

Config Timer1 = Timer, Prescale = 256
On Timer ISR_Timer1
Timer1 = 34286

Config PinD.5 = Output
Taster ALIAS PortD.5

Do
'irgendwas
Loop

ISR_Timer1:
Timer1 = 34286
If Taster = 1 Then INCR byByte
Return



In diesem Beispiel wird Timer 1 auf 1 sec eingestellt (gilt für 8 MHz-Takt); ein Taster ist am Pin D.5 angeschlossen, der auf Druck den Pin auf 5V setzt. Wird der Timer-Interrupt ausgelöst, wird in der ISR erst mal der Timer neu geladen um wieder 1 sec zu haben. Dann wird geprüft: Ist der Taster gedrückt? Wenn ja: byByte um eins hochzählen.

kawamaha
14.05.2008, 14:20
O:) funktioniert, danke!!!!