Ich bin unbezahlbar [-( , der mindstorm kostet 300 euro.
Hier mein erster nicht funktionierender entwurf.
Asuro dreht sich nur auf der stelle, aber in die richtige Richtung!!!
Wie fügt man einen quellcode und smylies hinzu?

Code:
#include "asuro.h"
#include "myasuro.h"

#define pi 3.141592654
#define halberradstand 52

void move(char geschwindigkeit, int strecke, unsigned int radius, int winkel);

void main (void)
	{
	Init();
    EncoderInit();
	move(200,200,0,-100);
    }
    
void move(char geschwindigkeit, int strecke, unsigned int radius, int winkel)
{
	int odoziellinks, odozielrechts, odolinks=0, odorechts=0;
	int vl, vr;
	
	Init();
    EncoderInit();
    
    if (strecke == 0) 		strecke=abs(radius*pi*winkel / 180);
    else if (radius == 0) 	radius=abs(180*strecke / (winkel*pi));
    else if (winkel == 0) 	winkel=abs(180*strecke / (radius*pi));
    
	if(winkel>0) //Rechtskurve
   		{
	   	odoziellinks=abs((radius+halberradstand)*pi*winkel*10000L / (180*MY_GO_ENC_COUNT_VALUE));
    	odozielrechts=abs((radius-halberradstand)*pi*winkel*10000L / (180*MY_GO_ENC_COUNT_VALUE));
		}
    else
    	{
	   	odoziellinks=abs((radius-halberradstand)*pi*winkel*10000L / (180*MY_GO_ENC_COUNT_VALUE));
    	odozielrechts=abs((radius+halberradstand)*pi*winkel*10000L / (180*MY_GO_ENC_COUNT_VALUE));
		}
		
    vl=geschwindigkeit*odoziellinks/odozielrechts;
    vr=geschwindigkeit*odozielrechts/odoziellinks;
		
	if(strecke >= 0) MotorDir(FWD,FWD);
    else MotorDir(RWD,RWD);
    
    EncoderSet (0, 0);
    
    while(vl!=0 && vr!=0)
    	{
    	MotorSpeed(vl,vr);
    
   		odolinks += encoder [LEFT]; 
   	 	odorechts += encoder [RIGHT];
    
   		EncoderSet (0, 0);
        
  		if(odolinks/odorechts < odoziellinks/odozielrechts) {vl++; vr--;}
 		else if (odolinks/odorechts > odoziellinks/odozielrechts) {vl--; vr++;}
    
   		if(odolinks>=odoziellinks) vl=0;
    	if(odorechts>=odozielrechts) vr=0;
	}
}