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 an J.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.
Verstehe ich das richtig: Die LED soll an sein, wenn der Zustand beider Tasten gleich ist, und aus, wenn sich der Zustand unterscheidet?
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
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.