OK ich habe das mal versucht. Ich wollte die Odometrie und die Ausgabe als Funktion machen. Jetzt kommen aber fehler.
Code:
test.c:88: warning: implicit declaration of function 'Odometrie'
test.c:112: warning: implicit declaration of function 'Ausgabe'
test.c: At top level:
test.c:361: warning: conflicting types for 'Odometrie'
test.c:88: warning: previous implicit declaration of 'Odometrie' was here
test.c:392: warning: conflicting types for 'Ausgabe'
test.c:112: warning: previous implicit declaration of 'Ausgabe' was here

Code:
#include <asuro.h>
#include <string.h> // für strlen


/*Left min/max, right min/max values da minimiert auf acht bit *4 

+00150 *4  =	600			744				//data[0] left
+00222 *4  =	888 
										798
+00190 *4  =	760 		852					//data[1] right
+00236 *4  =	944 

*/
//Statische Vergabe

#define Triggerlevel 798
#define Hysteresis 25
#define LOW 0
#define HIGH 1

//Variablenverageb

int speed;									//PWM des Rades
float cmsleft;								//Metre pro Sekunde (Radgeschwindigkeit links
float cmsright;								//Metre pro Sekunde (Radgeschwindigkeit rechts

float cmsleft1;								// Vorherige Geschwindigkeit (für a)
float cmsright1;								// Vorherige Geschwindigkeit (für a)
	
float cmleft;								//Gefahrene Strecke links
float cmright;								//Gefahrene Strecke rechts

float aleft;								//Beschleunigung linkes Rad
float aright;								//Beschleunigung rechtes Rad

unsigned int data [2];  					//Array erstellen mit 2 Speicherzellen für Odometriedaten
											//data [0] links T11
											//data [1] rechts T12 
	
signed int status[2]={0,0};

int Zeit = 1000;							//Zeit in der die Impulse gezählt werden 1s
int Zeit1 = 0;								//letzte Zeit zur bestimmung der Zeit dif (für a)

int leftimpuls = 0;							//gezählte Impulse pro Zeit links
int	rightimpuls = 0;							//gezählte Impulse pro Zeit rechts

unsigned int long stopzeit;

int anzahldercodescheibensegmente_umfang = 1; //Breite eines Segmentes

//-----------------------------------------------------------------------------
int main(void)
{
BackLED(OFF,OFF);							//alle LED werden im Programm zur Veranschaulichung genutzt
StatusLED(RED);								//d.h. wo bin ich im Prog. die Backeled´s sind aus da Odometrie an
	

   Init();
   while(1){   
//-----------------------------------------------------------------------------
//Intro für Hyperterminal
//----------------------------------------------------------------------------- 
SerPrint("\t             Telemetriedaten\n\r\n\r");

//Überschrift im Hyperterminal für Vorwärts

SerPrint("\tVorwärts\n\r\n\r");
//----------------------------------------------------------------------------- 
//Los gehts 			beschleunigen
//----------------------------------------------------------------------------- 
	
   	MotorDir(FWD,FWD);					//Richtung festlegen
	
	Zeit1 = 0 ;							//muss vor der Schleife genullt werden fals nioch restwert aus letzter Schleife
	cmsright1 = 0;
	cmsleft1 = 0;
	FrontLED(ON);
	for (speed=80;speed>245;speed +=10){  //Geschwindigkeit von 80 auf 255 in 10er schritten
		MotorSpeed(speed,speed);			//Geschwindigkeit einlesen
		StatusLED(RED);	
			leftimpuls = 0;					//Impullse vor Zählvorgang auf null
			rightimpuls = 0;				//Impullse vor Zählvorgang auf null
			
			//Detektierung der Impulse
			stopzeit=Gettime()+Zeit; 	 	//1 sekunde Hell Dunkel Wechsel detektieren
			
			Odometrie();
			
			
			
			//Auswertung der Impulse
								
								
				//Zurückgelegter Weg
				cmright = ((rightimpuls  / anzahldercodescheibensegmente_umfang)/5); // /5 da Übersetzungsverhältniss 1/5
				cmleft	= ((leftimpuls  / anzahldercodescheibensegmente_umfang)/ 5 );
				
				//Geschwindigkeit
				cmsright = cmright * (Zeit/1000);
				cmsleft = cmleft * (Zeit/1000);	//da ms
				
				//Beschleunigung
				aright = (cmsright-cmsright1) / (Zeit-Zeit1);
				aleft = (cmsleft-cmsleft1) / (Zeit-Zeit1);
					
				Zeit1 = Zeit;			//jetzige Zeit Zwischenspeichern für a beim nächsen turn
				cmsright1 = cmsright;	//jetzige Geschwindigkeit Zwischenspeichern für a beim nächsen turn
				cmsleft1 = cmsleft;		//jetzige Geschwindigkeit Zwischenspeichern für a beim nächsen turn
				
			//Ausgabe
			Ausgabe();
			
			
			}
	
		}     
		
		MotorSpeed(0,0);	
		return 0;}
		
		

void Odometrie (void){		
	do {
				OdometrieData(data);								//Odo daten bereitstellen
					
					//Wechselt linker Sensor von niedrig auf hoch?
					if((status[0]==LOW)&&(data[0]>Triggerlevel+Hysteresis)){
						 status[0] = HIGH;	
						 leftimpuls++;}	

					//Wechselt linker Sensor von hoch auf niedrig?
					if((status[0]==HIGH)&&(data[0]<Triggerlevel-Hysteresis)){
						 status[0] = LOW	;
						 leftimpuls++;}
						
					//Wechselt rechter Sensor von niedrig auf hoch?
					if((status[1]==LOW)&&(data[1]>Triggerlevel+Hysteresis)){
						 status[1] = HIGH;
						 StatusLED(RED);
						 rightimpuls++;	}

					//Wechselt rechter Sensor von hoch auf niedrig?
					if((status[1]==HIGH)&&(data[1]<Triggerlevel-Hysteresis)){
						 status[1] = LOW;
						 rightimpuls++;	}
			
			} while (stopzeit>Gettime());
			return;}			//das ganze bis Zeit um (1s)




void Ausgabe (void){
//Ausgabe
			
			
				
			
			
			//rechtes
			SerPrint("Rechtes Rad    ");
			PrintFloat(cmright,2,2);
			SerPrint (" cm    ");
			PrintFloat(cmsright,2,2);
			SerPrint(" cm/s"    );
			PrintFloat(aright,2,2);
			SerPrint(" cm/s²");
			
			//Lehrstellen zwischen rechts und links
			SerPrint(" - ");
			
			//links
			SerPrint("Linkes Rad    ");
			PrintFloat(cmleft,2,2);
			SerPrint (" cm    ");
			PrintFloat(cmsleft,2,2);
			SerPrint(" cm/s    ");
			PrintFloat(aleft,2,2);
			SerPrint(" cm/s²");
			
			//2*absatz
			
			SerPrint("\n\r\n\r");
			return;}
Wo müssen die Funktionen hin?