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