Hi,
wenn´s nur um den Taster und die Led geht, kannst Du dir mit dem Wait-Befehl helfen. Funzt aber nur, wenn der Prozessor während der Minute ausser Warten nichts anderes tun muß...
Außerdem solltest Du beachten, dass die LED´s und Eingänge üblicherweise mit einem Pullup-Widerstand betrieben werden, d.h., die LEd leuchtet, wenn der Ausgang auf logisch "0" gesetzt wird. Von daher hätte Dein Programm nicht funktioniert.
Der Grund liegt darin, dass ein Prozessor-Pin die 20mA nur gegen GND schalten kann, Der High-Pegel liefert nur ein paar mA.
Ist nicht getestet, nur runtergetippt - die Feinheiten überlasse ich Dir...Code:$Regfile = "m8def.dat" $Crystal = 3686000 'Quarz: 3.6860 MHz DDRD = &B0001000 'Pin PD3 Ausgang, Rest Eingang 'PORTD = &B0000100 'PullUp von Pin PD2 aktivieren 'Damit aktivierst Du keine Pullups sondern schreibst nur ein Bitmuster in das Byte von PortD... Portd.3=1 'Portd.3 auf 5V-> LED aus... Do If PIND.2 = 0 Then 'Wenn Taster (Pin PD2) gedrückt PORTD.3 = 0 'Rote LED (Pin PD3) an end if if Pind.2=1 and Pind.3=0 then 'Wenn Taster frei und Portd.3 =0 (LED an) wait 60 PORTD.3 = 1 'Rote LED aus End If Loop End
Viele Grüße
Torsten







Zitieren
Lesezeichen