ich weiss nicht wo ich mein "problem" unterbringen soll - also unter "programmierproblem" ist ja wohl richtig
Der asuro soll schauen, ob vor ihm platz ist (ultraschall), eine strecke fahren, 90grad abbiegen und erstmal stehen bleiben. Ich komme einfach nicht dahinter warum er die abfrage nach der entfernung (if(abstand > 25)) überspringt und nicht geradeuasfährt, sondern gleich zum darauf folgendem else und turn geht...
Die US-hardware funktioniert, mit der gleichen abfrage wird in etwa die entfernung angezeigt, die auch vor den Sensoren zur verfügung steht...
Code:
#include "asuro.h"
#include "inka.h"
int dist;
int abstand=0;
int i=0;
int j=0;


void umschauen (void)
	{
	Turn (20, 200);
	StatusLED(GREEN);
	Msleep(100);
	Turn (-40, 200);
	StatusLED(YELLOW);
	Msleep(100);
	Turn (20, 200);
	StatusLED(RED);
	Msleep(100);
	}
void fahren (void)
{
	Go (200,150);
	Msleep(1000);
	Turn (85, 150);
	Msleep(1000);
}

void entfernung(void)
{
  Init();
  SerWrite("\r\n  --- ultrasonic test ---",29);
  Msleep(1000);

  do
  {
    abstand=Chirp();
    SerWrite("\r\n distanz in cm   ",16);
    Msleep(500);
    PrintInt(abstand);

if(abstand > 25) {
	StatusLED(GREEN);
	Msleep(500);
	fahren();
	//MotorDir(FWD, FWD);
	//MotorSpeed(200, 200);
			}
else {
	StatusLED(RED);
	Msleep(500);
	Turn(180,200);
	}
  }
  while(1);
  return 0;
}


int main(void)
{
  Init(); 
  WaitforStart();

EncoderInit ();
for (j = 0; j < 8; j++)  
{ 
 entfernung();
 StatusLED(YELLOW);
 Msleep(500);
  }

//main();
while(1);
return 0;
}
Könnt ihr mir bitte einen tipp geben?