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.