Hallo,

wir haben große Probleme mit den Tastern vom Asuro. Wir haben bereits probiert PollSwitch öfters aufzurufen, PollSwitch - Werte zu vergleichen und bei der Umrechnung in der asuro.c den Originalwert 61 verändert. Trotzdem liefert die Funktion nicht immer korrekte Ergebnisse.

Wir wollten ein Programm schreiben, welches den Asuro veranlasst einen bestimmten Weg zu fahren, wenn er auf ein Hindernis stößt.

Unsere Funktionen sieht folgendermaßen aus:

Code:
void CollisionTest()
{
	unsigned int data[2];
	int switchesPressed;

	UnloadCondensator();
	
	FrontLED(ON);
	MotorDir(FWD,FWD);
	MotorSpeed(150, 150);

	while(1)
	{	
		LineData(data);
		
		switchesPressed = MyPollSwitch();
		
		if (switchesPressed > 0)
		{		
			//Hier fährt der Roboter einen bestimmten Weg
                        // ...
		}	
	}
}

int MyPollSwitch()
{
	int p1, p2;
	
	do
	{
		UnloadCondensator();
		Msleep(10);
		p1 = PollSwitch();
		UnloadCondensator();
		Msleep(10);
		p2 = PollSwitch();
	} while (p1 != p2);
	
	return p1;
}

void UnloadCondensator()
{
	int i = 0;
	for (; i <= 8; i++) PollSwitch();
}
Könnt ihr uns weiterhelfen??

Vielen Dank!

schönen Abend,
Bertl und Uli