PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timer0 springt zu früh an



Paisley
11.07.2005, 14:21
Hallo Forum,

ich habe ein kleines Problem mit dem Timer0.

Ich möchte ihn verwenden um ein Modellbauempfängersignal auf Richtigkeit zu prüfen, wenn mehrmals kein Impuls kommt soll die Subroutine anspringen.

Also habe ich erstmal den Timer configuriert:


Config Timer0 = Timer , Prescale = 1024
On Timer0 MissingPulse

Im Programm kommt dann:

Enable Interrupts
Enable Timer0
Start Timer0

Das Signal wird folgendermaßen abgefragt:

Getpulse:

Bitwait Pinb.5 , Set
Pulsein Rx , Pinb , 5 , 1
Timer0 = 0
Return

Und zum Schluss noch die Missing Pulse Anweisung:

MissingPulse:
Cls
Locate 4 , 1
Lcd "Puls vermisst!"
Wait 2
Return

Aber sobald Timer0 aktiviert wird bekomme ich auf dem LCD-Display mein "Puls vermisst", obwohl gleich der übernächsten Befehl "goto Getpulse" ist.

Warum also springt der Timer immer an?

Danke und Gruß,

Denis

PicNick
11.07.2005, 14:39
Wenn du Timer0 = 0 setzt, schnackelt er ja trotzdem nach 30mS.
Vielleicht solltest du "disable Timer0" verwenden

Übrigens: ein WAIT 2 in einer InterruptRoutine wird normalerweise mit offentlichem Auspeitschen honoriert. Wofür ist das gedacht ?

Paisley
11.07.2005, 14:43
Das Wait2 hat vorerst keinen Sinn, wenn der Timer läuft, dann kommt da was völlig anderes hin, dass ist ja nur zum gucken, ob es so ist wie ich's haben will.

Werde dann mal mit Disable Timer0 probieren, danke!

Gruß Denis