Ich würde das auch so machen wie Moppi das vorschlägt.
Also den kompletten Port an dem die Taster hängen einlesen und dann alle sinnvollen Zustände mit Switch Befehlen abarbeiten.
Dabei muss natürlich auch die Rückschaltung auf die Neutrallagen, also Geradeaus und Stopp berücksichtigt werden.
Ich mach in C da immer Zuweisungen wie z.B.
#define rechts 0b00000001
#define links 0b00000010
#define gerade 0b00000000
#define vorwärts 0b00000100
...
Die kann man dann mit dem aktuellen Zustand der Tasten UND verknüpfen und die entsprechende Reaktion auslösen.
Nicht sinnvolle Eingaben wie z.B. Links und Rechts gleichzeitig, oder Vor und Zurück gleichzeitig müssen natürlich geblockt werden.
Diese Switch sequenz kann dann in einer Endlosschleife durchlaufen werden.
Da die Befehle anscheinend direkt umgesetzt werden kann man eventuell auch auf eine Entprellung der Tasten verzichten.
switch ist auch ein C - Befehl.Switch sagt mir nur Schalter?
Damit kann innerhalb der Anweisung abhängig von einer Variable ein anderer Programmteil ausgeführt werden
switch(richtung){
case 1:
tu was;
break;
case 2:
tu was anderes;
break;
case 3:
tu was ganz andres;
break;
default:
wenn gar nichts passt;
}
Abhängig von der Variable richtung wird case 1,2, oder 3 ausgeführt.
Wenn keine der Bedingungen zutrifft wird default ausgeführt.
Ich denka mal das Moppi das meinte.
Lesezeichen