Hallo
Ich hoffe du verlierst nicht den Überblick bei den vielen #defines ;)
Auf den ersten Blick scheint if (k6 && k6)... eine Lösung für die Mehrfachabfrage zu sein. Bei genauerer Betrachtung erkennt man aber, dass dies wohl eine Sackgasse ist. Durch die if..else..else-Schachtelung hat man pro Durchlauf nur eine Chance die Tasten richtig zu erkennen. Außerdem kosten die vielen PollSwitch()-Aufrufe richtig viel Zeit. Besser wäre wohl ein solcher Ansatz:
(nicht getestet!)Code:#include "asuro.h" #define k6 taste==1 #define k5 taste==2 #define k65 taste==3 char t1, t2, taste; int main(void) { Init(); MotorSpeed(150, 150); // Zum Testen asuro in der Hand halten! while(1) { t1=PollSwitch(); t2=PollSwitch(); if (t1 && (t1==t2)) // Taste gedrückt und zweimal die selbe Taste erkannt? { taste=t1; // Dann überprüfen welche Taste es ist if(k6) StatusLED(RED); else if(k5) StatusLED(YELLOW); else if(k65) StatusLED(GREEN); } else StatusLED(OFF); // Keine oder ungültige Taste } return(0); }
Den TT-Ball habe ich mit Heißkleber befestigt. Drei Tropfen auf die Schnittkante und mittig auf die Platine geklebt hält ewig und läßt sich bei Bedarf rückstandsfrei entfernen.
Gruß
mic







Zitieren

Lesezeichen