danke für dein antwort,
also ich habe 3 quadranten, wo die Koordx=xnull, <xnull bewegt sich der arm nach links und >xnull nach rechts und so sieht mein code aus
Code:
int decide (void)
{
if(Koordx == xnull) 
Decision = 0;
if (Koordx < xnull ) 
Decision = 1;			//2ten Quadrant
else if (Koordx > xnull) 
Decision = 2;			//1ten Quadrant
return Decision
}

das ist ein bsp für die drehung links:


Code:
void execute(void)

{
int m; 
switch(Decision)
 {

case1

GPIO7->DR[0xFF*4] =  0x10;  	//	P7.4 Drehung rechts
  zeit2(Koordx,Koordy);
  GPIO7->DR[0xFF*4] =  0x0C;   //P7.2 & P7.3  Unterarm nach unten
  zeit3(Koordx,Koordy);
  GPIO7->DR[0xFF*4] = 0x40;		//P7.6 Greifer Auf
  zeit2(Koordx,Koordy);
  GPIO7->DR[0xFF*4] =  0x01; 	//P7.0 Oberarm nach unten
  zeit4(Koordx,Koordy);
  GPIO7->DR[0xFF*4] = 0xc0;	//P7.7 Greifer zu
  zeit2(Koordx,Koordy);
  GPIO7->DR[0xFF*4] =  0x00;	//				Stop
  for (m=0; m<10000000; m++);

  GPIO7->DR[0xFF*4] = 0x03 ; 	// Oberarm nach oben
  zeit5(Koordx,Koordy);
 
    zeit5(Koordx,Koordy);
  GPIO7->DR[0xFF*4] = 0x04  ;   //  Unterarm nach oben
  zeit6(Koordx,Koordy);
    GPIO7->DR[0xFF*4] =  0x00;	//				Stop
  break;
}
Ich hab dir ein paar Code-Tags aus meinem privaten Vorräten gespendet. Sieht doch einfach übersichtlicher aus (PicNick, Mod)


wenn du siehst ich hab den selben zeit für die drehung rechts oder links für den greifer genommen und es funktioniert rechts und links nur bei Koordx=xnull funktioniert nicht, hast du vieleicht ein vorschlag oder soll ich ein timer programm schreiben unabhängig von der Koord.
übrigens der Arm geht max 5cm auf.