-         

Ergebnis 1 bis 8 von 8

Thema: Odometrie Auslesen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    18.05.2007
    Beiträge
    6

    Odometrie Auslesen

    Anzeige

    Hi Leute,
    Ich würde gerne die Odometrie auslesen können.
    Also er soll wenn sich das Zahnrad einmal Schwarz und weis angezeigt hat eine 1 per SerWrite ausgeben. Das heißt je schneller ich das Rad drehe umso schneller erscheinen die Einsen auf dem Bildschirm.

    Ich kann aber auch nicht einfach sagen wenn Odometrie <500 oder >500 dann tuhe ____, weil ich gerne eine Allgemeine Funktion darüber schreiben möchte

    Achja und kann mir einer erkären wie ich ein Programmfeld im chat hinkriege? Damit ich nicht immer dieses Riesen Programm im Forum Posten muss.

    Vielen Dank im Vorraus

    Code:
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //-----------------------------------------------------------------------
    //---- Odomietrie Auslesen ------- 23.05.07 ------ Jannik Mewes ---------
    //---- Auslesen von Odomitrie Daten und Senden an eine Serielle ---------
    //---- Schnittstelle ----------------------------------------------------
    //-----------------------------------------------------------------------
    
    #include "asuro.h"
    
    //-----------------------------------------------------------------------
    //--- BCDaus ------- 23.5.07 --- Jannik Mewes --------------------------- 
    //--- Ausgabe einer integer Zahl in Ascii über die serielle -------------
    //--- Schnittstelle -----------------------------------------------------      
    //-----------------------------------------------------------------------
    void BCDaus(unsigned int data)				// Anfang der Funktion
    {
    
    	unsigned int (Zahl1);						// Definiere Variable Zahl1
    	unsigned int (Zahl2);						// Definiere Variable Zahl2
    	unsigned int (Zahl3);						// Definiere Variable Zahl3
    	unsigned int (Zahl4);						// Definiere Variable Zahl4
    
    			Zahl1 = data ;						// Zahl1 hat den gleichen Wert wie data 
    			Zahl1 = Zahl1 / 1000;				// Wert von Zahl1 geteilt durch 1000
    			data = data - Zahl1 * 1000;			// Wert von data minus Wert on Zahl1 mal 1000
    		    Zahl1 = Zahl1 + 48;					// Wert von Zahl1 plus 48
    			SerWrite(&Zahl1,1);					// Schreibe wert von Zahl1 an IR Sender
    			
    			Zahl2 = data;						// Zahl2 hat den gleichen Wert wie data
    			Zahl2 = Zahl2 / 100;				// Wert von Zahl2 geteilt durch 100
    			data = data - Zahl2 * 100;			// Wert von data minus Wert on Zahl2 mal 100
    			Zahl2 = Zahl2 + 48;					// Wert von Zahl2 plus 48
    			SerWrite(&Zahl2,1);					// Schreibe wert von Zahl2 an IR Sender
    			
    			Zahl3 = data;						// Zahl3 hat den gleichen Wert wie data
    			Zahl3 = Zahl3 / 10;					// Wert von Zahl3 geteilt durch 10
    			data = data - Zahl3 * 10;			// Wert von data minus Wert on Zahl3 mal 10
    			Zahl3 = Zahl3 + 48;					// Wert von Zahl3 plus 48
    			SerWrite(&Zahl3,1);					// Schreibe wert von Zahl3 an IR Sender
    			
    			Zahl4 = data;						// Zahl4 hat den gleichen Wert wie data
    			Zahl4 = Zahl4 / 1;					// Wert von Zahl4 geteilt durch 1
    			Zahl4 = Zahl4 + 48;					// Wert von Zahl4 plus 48
    			SerWrite(&Zahl4,1);					// Schreibe wert von Zahl4 an IR Sender
    
    }
    
    //------------------------------------------------------------------------
    // --------------- Hauptprogramm -----------------------------------------
    //------------------------------------------------------------------------
    
    int main(void)
    {
    	Init();							// Initialisierung
    	 
    	 unsigned int odo[2];			// Speicher bereitstellen
    	 StatusLED(GREEN);				// StatusLED auf Grün schalten
    	 BackLED(ON,ON);
    	 
    	while(1)						// Enslosschleife
    			{				
    			 OdometrieData(odo);	// Lese Odometrie aus
    			 BCDaus (odo[0]);		// Lade Funktion BCDaus un übergebe den Wert i
    			 SerWrite(" ",1);		// Schreibe ein Leerzeichen
    			 BCDaus (odo[1]);		// Lade Funktion BCDaus un übergebe den Wert i
    			 SerWrite(";",1);		// Schreibe ein Leerzeichen
    			}
    return 0;							// Zurück zu 0

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    In den neueren Versionen der asuro.c gibt es die Funktion PrintInt() mit der man Integerwerte über die IR-Schnittstelle senden kann:

    Code:
    void PrintInt(int wert)
    {  	char text[6]="      ";
    	itoa(wert,text,10);
    	SerWrite(text,5);
    }
    Längeren Programmcode postet man in Code-Tags wegen der übersichtlichkeit.

    Am Ende deiner Main-Funktion fehlt eine }

    Mehrzeilige Kommentare bettet man besser zwischen /* */ ein, denn mit // kann es bei Zeilenumbrüchen zu Problemen kommen.

    Die StatusLED wird schon bei Init() auf Grün gesetzt, zur Programmablaufskontrolle taugt grün deshalb nur bedingt.

    Die BackLEDs beeinflussen die ODO-Werte, deshalb immer BackLED(OFF,OFF) vor dem Einlesen der ODO-Daten.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.05.2007
    Ort
    Merseburg
    Alter
    36
    Beiträge
    130
    Wir haben die asuros im studium gehabt.

    Um ein flexibles auslesen zu erreichen hab ich den Asuro selbst die Schwellwerte für dunkel/weiß berechnen lassen, indem ich gesagt hab:

    dunkel ist < als 4/10 des Wertebereichs
    hell ist > 6/10 des Wertebereichs
    Werte dazwischen hab ich einfach als "kein Wechsel der aktuellen Situation" gewertet

    bzw. invertiert, ich weiß grad nicht mehr ob das so oder genau anders rum war

    Den Wertebereich hab ich beim Auslesen bestimmt und sozusagen jedes mal einen min. und max wert verglichen.

    Das ganze hat dann selbst ohne zahnradfixierung und ohne "überdachung" des sensors gut funktioniert. Code gibts auf Anfrage, sollte aber nicht so schwer sein das selber zu machen.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    18.05.2007
    Beiträge
    6
    @ Phantomix,
    Genau diese Lösung hatte ich zuerst auch allerdings gibt sich damit mein Chef nicht zufrieden

    Mein Chef will das ich von dem Auslesewert (Sinuskurve) den öchsten und den Niedriegsten wert auslese und Speichere.

    Am ende will er an einen Tasta drücken und das Rad drehen. Wenn er dann den Tasta loslässt soll der Asuro Automatisch das Rad wieder zurückdrehen.

    Da knausere ich grad dran ^^

    PS:
    Ich bin in der Fachoberschule Technik (Klasse 11) und mache hier nur ein Praktikum. Man benutzt den Asuro auch im Abitur???

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    18.05.2007
    Beiträge
    6
    Mein jetzieges Programm sieht so aus: Allerdings Hört der Asuro danach nicht mehr aus das Rad zu drehen. Daran Knobele ich gerade.

    PS: Ich habe den Asuro seid 6 Tagen und soll nächste Woche eine Präsentation vor 300 Leuten vortragen *aufgeregt*. vielleicht findet ja einem mal lust dran meine Präsentation durchzusehen . Ich schicke sie dann wenn sich wer meldet per E-mail zu aber ist nicht umbedingt nötig. also keine umstände.

    Dankööö
    Code:
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //-----------------------------------------------------------------------
    //---- Odomietrie Auslesen ------- 23.05.07 ------  ---------
    //---- Auslesen von Odomitrie Daten und Senden an eine Serielle ---------
    //---- Schnittstelle ----------------------------------------------------
    //-----------------------------------------------------------------------
    
    #include "asuro.h"
    
    //-----------------------------------------------------------------------
    //--- BCDaus ------- 23.5.07 --- Jannik Mewes ---------------------------
    //--- Ausgabe einer integer Zahl in Ascii über die serielle -------------
    //--- Schnittstelle -----------------------------------------------------     
    //-----------------------------------------------------------------------
    void BCDaus(unsigned int data)            // Anfang der Funktion
    {
    
       unsigned int (Zahl1);                  // Definiere Variable Zahl1
       unsigned int (Zahl2);                  // Definiere Variable Zahl2
       unsigned int (Zahl3);                  // Definiere Variable Zahl3
       unsigned int (Zahl4);                  // Definiere Variable Zahl4
    
             Zahl1 = data ;                  	// Zahl1 hat den gleichen Wert wie data
             Zahl1 = Zahl1 / 1000;            	// Wert von Zahl1 geteilt durch 1000
             data = data - Zahl1 * 1000;      	// Wert von data minus Wert on Zahl1 mal 1000
             Zahl1 = Zahl1 + 48;               	// Wert von Zahl1 plus 48
             SerWrite(&Zahl1,1);               	// Schreibe wert von Zahl1 an IR Sender
             
             Zahl2 = data;                  	// Zahl2 hat den gleichen Wert wie data
             Zahl2 = Zahl2 / 100;            	// Wert von Zahl2 geteilt durch 100
             data = data - Zahl2 * 100;        	// Wert von data minus Wert on Zahl2 mal 100
             Zahl2 = Zahl2 + 48;               	// Wert von Zahl2 plus 48
             SerWrite(&Zahl2,1);               	// Schreibe wert von Zahl2 an IR Sender
             
             Zahl3 = data;                  	// Zahl3 hat den gleichen Wert wie data
             Zahl3 = Zahl3 / 10;               	// Wert von Zahl3 geteilt durch 10
             data = data - Zahl3 * 10;         	// Wert von data minus Wert on Zahl3 mal 10
             Zahl3 = Zahl3 + 48;               	// Wert von Zahl3 plus 48
             SerWrite(&Zahl3,1);               	// Schreibe wert von Zahl3 an IR Sender
             
             Zahl4 = data;                		// Zahl4 hat den gleichen Wert wie data
             Zahl4 = Zahl4 / 1;             	// Wert von Zahl4 geteilt durch 1
             Zahl4 = Zahl4 + 48;            	// Wert von Zahl4 plus 48
             SerWrite(&Zahl4,1);            	// Schreibe wert von Zahl4 an IR Sender
    
    }
    
    
    //-----------------------------------------------------------------------
    //--- Pulserkennnung ------- 30.5.07 --- Jannik Mewes ------------------- 
    //--- Ausgabe einer 1 bei odometriepuls über RS232  ---------------------
    //-----------------------------------------------------------------------
    unsigned int  Flanke_odo (void)			// Anfang der Funktion
    {
    	
    	
    	unsigned int (ausgabe);				// Definiere Variable Zahl1
    	unsigned int odo[2];					// Speicher bereitstellen
    	unsigned int (temp);					// Speicher bereitstellen
    	unsigned int (i);						// Speicher bereitstellen
      
        ausgabe = 0;							// ausgabe kriegt den Wert 0
    	i = 0;									// ausgabe kriegt den Wert 0
    	temp = 0;								// temp kriegt den Wert 0
    
      while (i == 0)							// Enslosschleife bis i != 0
    	{
    		OdometrieData(odo);					// Lese Odometrie aus
    		if (odo[0]> temp) temp =odo[0];	// Wenn odo[0]> temp ist dann ist temp gleich genausogroß wie odo
    		if ( temp > (odo[0]+50)) i =1;		// Wenn temp > als odo plus 50 ist dann ist i = 1
    	}
    
      i = 0;
      temp = 1024;
    
      while (i == 0)							// Enslosschleife bis i != 0
    	{
    		OdometrieData(odo);					// Lese Odometrie aus
    		if (odo[0]< temp) temp =odo[0];	// Wenn odo[0]< temp ist dann ist temp gleich genausogroß wie odo
    		if ( temp < (odo[0]+50)) i =1;		// Wenn temp < als odo plus 50 ist dann ist i = 1
    	}
    	ausgabe = 1;							// ausgabe kriegt den Wert 0
        return  ausgabe; 						// gebe ausgabe zurück
    
    }
    //------------------------------------------------------------------------
    // --------------- Hauptprogramm -----------------------------------------
    //------------------------------------------------------------------------
    
    int main(void)
    {
       Init();                     			// Initialisierung
        unsigned int zeahler;				// Speicher bereitstellen
    	unsigned int temp2;
    	unsigned int wert;				// Speicher bereitstellen
    	unsigned int zuruek;				// Speicher bereitstellen
    	unsigned int odo2[2];				// Speicher bereitstellen
     	int i;								// Speicher bereitstellen
     
        StatusLED(GREEN);            		// StatusLED auf Grün schalten
        BackLED(OFF,OFF);					// BackLED´s auf aus
    
    	zuruek = 0;
        zeahler = 0;
        i = 0; 
    
      while(i == 0)                  		// Enslosschleife bis 1 != 1
           {            
    			wert = Flanke_odo();		// wert ist genau so groß wie Flanke_odo
    			zeahler = zeahler +1;
    			if(PollSwitch()>0) i = 1; 	// wenn Tasta gedrückt gehe weiter
           }
    			zuruek = zeahler;
    			BCDaus (zeahler);      		// Lade Funktion BCDaus un übergebe den Wert i
    			SerWrite(";",1);      		// Schreibe ein Leerzeichen
    			
      while(zuruek > 0)
    	   {
    			MotorDir(RWD,BREAK);
    			MotorSpeed(120,120);
    			BCDaus (zuruek);							
    			i = 0;										// ausgabe kriegt den Wert 0
    			temp2 = 0;									// temp kriegt den Wert 0
             while (i == 0)								// Enslosschleife bis i != 0
    			{
    				OdometrieData(odo2);					// Lese Odometrie aus
    				if (odo2[0]> temp2) temp2 =odo2[0];	// Wenn odo[0]> temp ist dann ist temp gleich genausogroß wie odo
    				if ( temp2 > (odo2[0]+50)) i =1;		// Wenn temp > als odo plus 50 ist dann ist i = 1
    			}
    				zuruek = zuruek - 1;
    				i = 0;
    				temp2 = 1024;
    		 while (i == 0)								// Enslosschleife bis i != 0
    			{
    				OdometrieData(odo2);					// Lese Odometrie aus
    				if (odo2[0]< temp2) temp2 =odo2[0];	// Wenn odo[0]< temp ist dann ist temp gleich genausogroß wie odo
    				if ( temp2 < (odo2[0]+50)) i =1;		// Wenn temp < als odo plus 50 ist dann ist i = 1
    			}
    				zuruek = zuruek - 1;
    	   }
    		MotorDir(BREAK,BREAK);
    return 0;                     			// Zurück zu 0
    }

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    12.05.2007
    Beiträge
    31
    ....Ich kann aber auch nicht einfach sagen wenn Odometrie <500 oder >500 dann tuhe _.....

    natürlich kannst du das sagen, der wert bestimmt ja die aufzeichnung.


    ....dunkel ist < als 4/10 des Wertebereichs
    hell ist > 6/10 des Wertebereichs .....


    ist doch nichts anderes, wenn du weisst ob der adc mit 8bit oder 10bit arbeitet .

    also 4/10 von 256 oder 4/10 von 1024....oder....mathe???

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    18.05.2007
    Beiträge
    6

    @ robbifan

    Ja das ist schon richtig nur das das sich ändert je nach Licheinwirkung von außen so kann es sein das wenn ich das Licht ausschalte das sich die werte verändern... Dazu gibt es noch die Störfrequenz die den Sinus nicht gleichmäßig steingen und sinken lässt (wenn der Asuro rollt). Aber diesen Teil habe ich ja schon so gelöst (unten im Code). Der Sensor misst ja die Hälligkeit wenn ich jetzt wärend er misst eine Lampe drüber halte und plötzlich ausschalte habe ich einen falschen Wert.... und damit gibt sich nun mein Chef nicht zufrieden .

    Code:
     while (i == 0)							
    	{
    		OdometrieData(odo);					
    		if (odo[0]> temp) temp =odo[0];	
    		if ( temp > (odo[0]+50)) i =1;		
    	}
    
      i = 0;
      temp = 1024;
    
      while (i == 0)							
    	{
    		OdometrieData(odo);					
    		if (odo[0]< temp) temp =odo[0];	
    		if ( temp < (odo[0]+50)) i =1;		
    	}

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    18.05.2007
    Beiträge
    6

    Fertig!

    Juhuu,
    nach langem hin und her grübeln habe ich nun endlich das Programm völlig fertig! Danke allen die mir Denkanstöße gegeben habe . Für alle die Es interessiert wie man so etwas macht (was ich machen sollte s.o.) dann findet er den Code drei zeilen unrt dieser Zeile


    Code:
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //-----------------------------------------------------------------------
    //---- Odomietrie Auslesen ------- 05.06.07 ------ Jannik Mewes ---------
    //---- Auslesen von Odomitrie Daten und Senden an eine Serielle ---------
    //---- Schnittstelle. Korektur des Reifens. -----------------------------
    //-----------------------------------------------------------------------
    
    #include "asuro.h"
    
    //-----------------------------------------------------------------------
    //--- BCDaus ------- 23.5.07 --- Jannik Mewes ---------------------------
    //--- Ausgabe einer integer Zahl in Ascii über die serielle -------------
    //--- Schnittstelle -----------------------------------------------------     
    //-----------------------------------------------------------------------
    void BCDaus(unsigned int data)            // Anfang der Funktion
    {
    
       unsigned int (Zahl1);                  // Definiere Variable Zahl1
       unsigned int (Zahl2);                  // Definiere Variable Zahl2
       unsigned int (Zahl3);                  // Definiere Variable Zahl3
       unsigned int (Zahl4);                  // Definiere Variable Zahl4
    
             Zahl1 = data ;                  	// Zahl1 hat den gleichen Wert wie data
             Zahl1 = Zahl1 / 1000;            	// Wert von Zahl1 geteilt durch 1000
             data = data - Zahl1 * 1000;      	// Wert von data minus Wert on Zahl1 mal 1000
             Zahl1 = Zahl1 + 48;               	// Wert von Zahl1 plus 48
             SerWrite(&Zahl1,1);               	// Schreibe wert von Zahl1 an IR Sender
             
             Zahl2 = data;                  	// Zahl2 hat den gleichen Wert wie data
             Zahl2 = Zahl2 / 100;            	// Wert von Zahl2 geteilt durch 100
             data = data - Zahl2 * 100;        	// Wert von data minus Wert on Zahl2 mal 100
             Zahl2 = Zahl2 + 48;               	// Wert von Zahl2 plus 48
             SerWrite(&Zahl2,1);               	// Schreibe wert von Zahl2 an IR Sender
             
             Zahl3 = data;                  	// Zahl3 hat den gleichen Wert wie data
             Zahl3 = Zahl3 / 10;               	// Wert von Zahl3 geteilt durch 10
             data = data - Zahl3 * 10;         	// Wert von data minus Wert on Zahl3 mal 10
             Zahl3 = Zahl3 + 48;               	// Wert von Zahl3 plus 48
             SerWrite(&Zahl3,1);               	// Schreibe wert von Zahl3 an IR Sender
             
             Zahl4 = data;                		// Zahl4 hat den gleichen Wert wie data
             Zahl4 = Zahl4 / 1;             	// Wert von Zahl4 geteilt durch 1
             Zahl4 = Zahl4 + 48;            	// Wert von Zahl4 plus 48
             SerWrite(&Zahl4,1);            	// Schreibe wert von Zahl4 an IR Sender
    
    }
    
    
    //-----------------------------------------------------------------------
    //--- Pulserkennnung ------- 30.5.07 --- Jannik Mewes ------------------- 
    //--- Ausgabe einer 1 bei odometriepuls über RS232  ---------------------
    //-----------------------------------------------------------------------
    unsigned int  Flanke_odo (void)			// Anfang der Funktion
    {
    	
    	
    	unsigned int (ausgabe);				// Definiere Variable Zahl1
    	unsigned int odo[2];					// Speicher bereitstellen
    	unsigned int (temp);					// Speicher bereitstellen
    	unsigned int (i);						// Speicher bereitstellen
      
        ausgabe = 0;							// ausgabe kriegt den Wert 0
    	i = 0;									// ausgabe kriegt den Wert 0
    	temp = 0;								// temp kriegt den Wert 0
    
      while (i == 0)							// Enslosschleife bis i != 0
    	{
    		OdometrieData(odo);					// Lese Odometrie aus
    		if (odo[0]> temp) temp =odo[0];	// Wenn odo[0]> temp ist dann ist temp gleich genausogroß wie odo
    		if ( temp > (odo[0]+50)) i =1;		// Wenn temp > als odo plus 50 ist dann ist i = 1
    	     if(PollSwitch()>0) goto rollen; 	// wenn Tasta gedrückt gehe weiter zu rollen
    	}
    
      i = 0;									// i kriegt den Wert 0
      temp = 1024;								// temp kriegt den Wert 1024
    
      while (i == 0)							// Enslosschleife bis i != 0
    	{
    		OdometrieData(odo);					// Lese Odometrie aus
    		if (odo[0]< temp) temp =odo[0];	// Wenn odo[0]< temp ist dann ist temp gleich genausogroß wie odo
    		if ( temp < (odo[0]+50)) i =1;		// Wenn temp < als odo plus 50 ist dann ist i = 1
    	}
    	rollen:
    	ausgabe = 1;							// ausgabe kriegt den Wert 0
        return  ausgabe; 						// gebe ausgabe zurück
    
    }
    //------------------------------------------------------------------------
    // --------------- Hauptprogramm -----------------------------------------
    //------------------------------------------------------------------------
    
    int main(void)
    {
       Init();                     			// Initialisierung
        int zeahler;						// Speicher bereitstellen
    	unsigned int temp2;
    	unsigned int wert;					// Speicher bereitstellen
    	int zuruek;							// Speicher bereitstellen
    	unsigned int odo2[2];				// Speicher bereitstellen
     	int i;								// Speicher bereitstellen
     
        StatusLED(GREEN);            		// StatusLED auf Grün schalten
        BackLED(OFF,OFF);					// BackLED´s auf aus
    
    	zuruek = 0;							// zuruek kriegt den Wert 0
        zeahler = 0;						// zeahler kriegt den Wert 0
        i = 0; 
    
      while(i == 0)                  		// Enslosschleife bis 1 != 1
           {            
    			wert = Flanke_odo();		// wert ist genau so groß wie Flanke_odo
    			zeahler = zeahler +1;		// Rechne zeahler + 1
    			if(PollSwitch()>0) i = 1; 	// wenn Tasta gedrückt gehe weiter
           }
    	
    	zuruek = zeahler;			// zuruek hat den gleichen Wert wie zeahler
    	BCDaus (zeahler);      		// Lade Funktion BCDaus un übergebe den Wert i
    	SerWrite(";",1);      		// Schreibe ein Kommer
    			
      while(zuruek > 0)					// Enslosschleife bis i zuruek > 0
    	   {
    			MotorDir(RWD,BREAK);		// Motorrichtung linker Reifen Stopp rechter Reifen Rückwerts
    			MotorSpeed(120,120);		// Motorspeed auf die Hälfte der maximalen Leistung
    			i = 0;										// ausgabe kriegt den Wert 0
    			temp2 = 0;									// temp2 kriegt den Wert 0
             while (i == 0)								// Enslosschleife bis i != 0
    			{
    				OdometrieData(odo2);					// Lese Odometrie aus
    				if (odo2[0]> temp2) temp2 =odo2[0];	// Wenn odo2[0]> temp2 ist dann ist temp2 gleich genausogroß wie odo
    				if ( temp2 > (odo2[0]+50)) i =1;		// Wenn temp2 > als odo2 plus 50 ist dann ist i = 1
    			}
    		
    		i = 0;									// i kriegt den Wert 0
    		temp2 = 1024;							// temp2 kriegt den Wert 1024
    		
    		 while (i == 0)								// Enslosschleife bis i != 0
    			{
    				OdometrieData(odo2);					// Lese Odometrie aus
    				if (odo2[0]< temp2) temp2 =odo2[0];	// Wenn odo2[0]< temp2 ist dann ist temp2 gleich genausogroß wie odo
    				if ( temp2 < (odo2[0]+50)) i =1;		// Wenn temp2 < als odo2 plus 50 ist dann ist i = 1
    			}
    				zuruek = zuruek - 1;					// zuruek - 1
    	   }
    	MotorDir(BREAK,BREAK);
    return 0;                     			// Zurück zu 0
    }

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •