wenn du das jetzt an den anfang der programm.c (oder wie die bei dir halt heißt) copiertst, musst du gar nichts an der asuro.h ändern.
Die funktion GoTaster fäöhrt eine bestimmte strecke, bleibt aber bei einem hinderniss sofort stehen.
probier mal aus, ob das funktioniert, ich habs auf die schnelle nicht getestet.

hier der code:
Code:
int GoTaster(int distance, int speed)
{
	int enc_count = 0;
	int tot_count = 0;
	int diff = 0;
	int l_speed = speed, r_speed = speed;
	enc_count=abs(distance);
	
//	enc_count=distance*10000;
//	enc_count/=12823;
	
	Encoder_Set(0,0);		// reset encoder

	MotorSpeed(l_speed,r_speed);
	if(distance<0) MotorDir(RWD,RWD);
	else MotorDir(FWD,FWD);

	while(tot_count<enc_count) {
		tot_count += encoder[LEFT];
		diff = encoder[LEFT] - encoder[RIGHT];
		if (diff > 0) { //Left faster than right
			if ((l_speed > speed) || (r_speed > 244)) l_speed -= 10;
			else r_speed += 10;
		}
		if (diff < 0) { //Right faster than left
			if ((r_speed > speed) || (l_speed > 244)) r_speed -= 10;
			else l_speed += 10;
		}
			
		Encoder_Set(0,0);		// reset encoder
		MotorSpeed(l_speed,r_speed);
		if (PollSwitch()>0) {
			MotorDir(BREAK,BREAK);
			MotorSpeed(0,0);
			return 0;
		}	
		Msleep(1);
	}
	MotorDir(BREAK,BREAK);
	Msleep(200);
	return 0;
}
mfg EDH