Hallo,
Du solltest für größere Zeiten Timer1 benutzen.
Code:Config Timer1 = Timer, Prescale = 64 Const Startwert=7936 Load Timer1, Startwert
Timer1 zählt ohne Startwert bis 65535 und lößt dann einen Interrupt aus.
Bei deiner Quarzfrequenz von 3686400 Hz / Vorteiler 64 ergibt das 57600 Takte pro Sekunde.
Wenn der Timer mit einem Startwert von 7936 voreingestellt wird, zählt er von diesem Wert, bis 65535.
Ergibt 65535 - 7936 = 57599. Das heisst, jede Sekunde wird ein Interrupt ausgelößt.
Jetzt musst du nur noch in deinem Programm die Auswertung machen.Code:IRQ_Timer1: Load Timer1, Startwert 'Startwert wieder neu laden Incr Zaehler 'Zaehler wird jede Sekunde erhöht Return
Wenn ich dich richtig verstanden habe etwa so ...
Code:If Variable = 1 Then Zaehler = 0 'den Zaehler starten If Zaehler < 120 AND Pind.0 = 0 then Portd.5 = 0 ' wenn noch keine 2 Minuten um sind und Pind.0 = 0 dann schalte Portd.5 auf 0







Zitieren

Lesezeichen