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.
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
Ist nicht getestet, nur runtergetippt - die Feinheiten überlasse ich Dir...
Viele Grüße
Torsten
Lesezeichen