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:
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);
}
(nicht getestet!)
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
Lesezeichen