Hallo,
ich versuche gerade ein eigentlich einfaches Programm zu schreiben doch es gelingt mir nicht.
Eine Led soll eingeschaltet werden sobald einer der Dip-Schalter eingeschaltet wird. Danach soll die Led einfach nur an bleiben egal wie die Schalter hin und her geschaltet werden solange nur ein Dip auf on steht. Sobald dann alle Schalter Off sind soll die Led aus gehen.
Ich habe es bereits mit dem Debounce-Befehl versucht aber irgendwas ist nicht korrekt da bei verschiedenen Schalterkombinationen die Led unterschiedlich schnell an und aus geht. Ich denke es hat was mit den 25ms zu tun die gewartet werden.
Ich weiß für diese Aufgabe bräuchte man eigentlich keinen µC aber jeder Schalter soll später auf einem LCD mit "ON" "OFF" angezeigt werden.
Hier mal mein Versuch:
Code:
$regfile = "M8def.dat"
$crystal = 1000000
Config Portc = Input
Dip1 Alias Pinc.0
Dip2 Alias Pinc.1
Dip3 Alias Pinc.2
Dip4 Alias Pinc.3
Portc = 1
Config Portd.0 = Output
Led Alias Portd.0
Do
Debounce Dip1 , 0 , Led_on , Sub
Debounce Dip1 , 1 , Led_off , Sub
Debounce Dip2 , 0 , Led_on , Sub
Debounce Dip2 , 1 , Led_off , Sub
Debounce Dip3 , 0 , Led_on , Sub
Debounce Dip3 , 1 , Led_off , Sub
Debounce Dip4 , 0 , Led_on , Sub
Debounce Dip4 , 1 , Led_off , Sub
Loop
End
Led_on:
Led = 0
Return
Led_off:
Led = 1
Return
Mit if-then Schleifen hab ich es auch schon probiert aber ich denke das ist zu umständlich und funktioniert hat es nicht richtig da die Led beim Schalten in der Helligkeit variiert hat.
Lesezeichen