Hallo,
wer hat enie Idee wie ich den 4333 z.B. als Lichtschalter programmieren
kann. Mit den 6 Tastern sollen die Ausgänge beschaltet werden, jeder
Taster soll die entsprechenden Ausgang getrennt einschalten und nur nach
nochmaliger betätigung wieder ausschalten.
Wer hat eine Idee, das Programm was ich habe hält die Zustände hält.
Vielen Dank
Jürgen
.include "4433def.inc" ;bzw. 2333def.inc
ldi r16, 0xFF
out DDRB, r16 ;Port B durch Ausgabe von 0xFF ins
;Richtungsregister DDRB als Ausgang
konfigurieren
ldi r16, 0x00
out DDRD, r16 ;Port D durch Ausgabe von 0x00 ins
;Richtungsregister DDRD als Eingang
konfigurieren
loop:
in r16, PIND ;an Port D anliegende Werte (Taster) nach r16
einlesen
out PORTB, r16 ;Inhalt von r16 an Port B ausgeben
rjmp loop ;Sprung zu "loop:" -> Endlosschleife
Hallo, im Anhang ein Asm-Programm, mit dem es evtl. gehen könnte. Der Zustand der Ausgänge wird dabei zwischengespeichert und mit den Eingängen xor-verknüpft. Was man noch beachten müsste: Problem bei mehr als zwei Taster (fast) gleichzeitig gedrückt und Entprellung der Taster. Gruß Thomas
Hallo, vielen Dank für die Antwort!!! Bei mir funktioniert nur leider das Programm auch nicht es leuchtet immer nur Bit0, die Taster ändern den Zustand nicht. Vielen Dank im vorraus Jürgen
Ich habe so etwas in meiner Wohnung realisiert - die wird von einem 80535 gesteuert. Leider hilft es Dir nichts, wenn ich ein Code-Segment poste, da die Taster-Funktion mit einem Logik-Interpreter verwoben ist. Knackpunkt: Du mußt an Deinen Eingängen Flanken erkennen. Das heißt, daß z.B. nur bei einem 0->1 Übergang ein Ereignis ausgelöst wird. Hierzu löse ich alles auf Bit-Ebene auf, somit geht mir auch ein gleichzeitiger Tastendruck nicht verloren. Wird nun ein Eingangs-Ereignis (Flanke) erkannt, wird der ensprechende Ausgang getoggelt (xor-Verknüpfung). Entprellen ist ganz einfach: Die Eingänge mit 50 Hz im Interrupt abfragen, da braucht man sich um entprellen keine Gedanken mehr machen, kein Kontakt prellt 20ms lang...
Lad dir die Kostenlos Bascom Version runter. Und dann machst du grob das hier: Start: Entprelle Taster1->Out1 Entprelle Taster2->Out2 ... Springe zu Start Out1: Toggle Ausgang1 Springe zu Start Out2: Toggle Ausgang2 Springe zu Start ... Mit dem "grob" Programm geht es auf jeden Fall mit Entprellung und allem.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.