Hi,
ich habe als Neuling ein Logikproblem und ich bitte um ein Code-Snippet.
Ich möchte gerade programmieren, das
Taste eins UND zwei gedrückt oder beide nicht gedrückt = LED an
Mit XOR nun: Taste 1 xor Taste 2 gedrückt oder umgekehrt, LED aus, die
soll aber auch aus bleiben! Nur wenn ich jetzt 1 und 2 wieder
gleichzeitig drücke, dann soll die Led wieder an sein... oh man, total
simpel, sorry...
Liebe Grüße,
Jens
J.W. schrieb:> Taste eins UND zwei gedrückt oder beide nicht gedrückt = LED anJ.W. schrieb:> Nur wenn ich jetzt 1 und 2 wieder>gleichzeitig drücke, dann soll die Led wieder an sein... oh man, total>simpel, sorry...
Eher total widersprüchlich.
J.W. schrieb:> ich habe als Neuling ein Logikproblem und ich bitte um ein Code-Snippet.> Ich möchte gerade programmieren
Versuch nicht mit irgendwelcher Prosa zu erklären, was du vorhast,
sondern zeig einfach, was du gemacht hast. Ohne Code kann dir auch
keiner helfen.
Und ein Code-Snippet wird dich nicht weiterbringen. Wie willst du denn
programmieren, wenn es Ernst wird.
Zumal das deiner Beschreibung zufolge auch gar nicht geht.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
mfg.
Das was du willst, ist in sich widersprüchlich.. oder du hast dich
schlecht ausgedrückt.
Wenn es rein kombinatorisch sein soll, dann gibt es für jede Kombination
an Tasten (4 Kombinationsmöglichkeiten) exakt einen Zustand der LED
Wenn die Abfolge eine Rolle spielt, dann gibt es deutlich mehr
Möglichkeiten und du musst die Reihenfolge in deinem Programm erfassen.
Das kann man z.B. mit einer Zustandsmaschine lösen. Auch statemachine
oder FSM genannt.
Versuche mal ganz klar zu beschreiben, was du vor hast.
Hi,
klar, mir kommt es halt auf die Unterscheidung zwischen zwei Tasten
gedrückt oder nur eine gedrückt an. Aber wahrscheinlich ist das in
meinem Beispiel quatsch, weil man ja kaum gleichzeitigkeit erreichen
kann. Mein Code ist angehangen, funktioniert aber überhaupt nicht.
Da sollte Led1 und 2 leuchten, egal ob beide Tasten gedrückt sind oder
nicht, gleichzeitig. Falls nur eine gedrückt wird, dann gehen die Leds
dauerhaft aus, bis man mit Taste 3 drückt, dann schaltet man wieder
frei.
Der Code ist murks. Ich denke, es ist problematisch, wenn man zwei
Schalter von einem unterscheiden möchte?
Danke...
Hi Rufus,
ja, aber speichernd. Also nicht, das die LED leuchtet, wenn beide Tasten
gedrückt sind, dauerhafter Druck, das ist sehr einfach. Vielleicht
drücke ich mich noch, leider, sehr unklar aus...
Merci
Alles sehr wirr.
Du musst als erstes mal unterscheiden, was Du unter Taste "gedrückt"
verstehst. Entweder "ist gerade gedrückt" oder "wurde gedrückt (und
wieder losgelassen)". Das ist ein großer Unterschied.
Und dann überlegst Du Dir mal, welche Abläufe und Zustände es geben
kann. Mit jedem Tastendruck (antippen und loslassen), wechselt das
Programm seinen Zustand. Jedem Zustand ist zugeordnet, ob die LED an
oder aus ist.
Lies Dir am besten den Artikel mal durch:
http://www.mikrocontroller.net/articles/Statemachine