ok, danke, ich bin mir zwar nicht sicher ob ich das verstanden habe,
aber die "x=data[1]" habe ich rausgekürzt undüberall wo x verwendet wurde direkt durch "data[1]" ersetzt.
hier der code:
Code:
#include "asuro.h" // Odometrie test
unsigned int data[2];
unsigned char s[5] = "thze\0";

	void PrintCharR()
	   {
			unsigned char einer, zehner, huni, tausend;
		  
			tausend = data[1]/1000;
			huni    = (data[1]-(tausend*1000))/100;
			zehner  = (data[1]-(tausend*1000 + huni*100))/10;
			einer   = (data[1]-(tausend*1000 + huni*100 + zehner*10))/10;
				
			s[0]=tausend+'0';
			s[1]=huni+'0';
			s[2]=zehner+'0';
			s[3]=einer+'0';
		  
			SerWrite(s,5);
	   }

int main(void)
{
	Init();

	int i=0;
	
	while(1)
	{ 								
		OdometrieData(data); // aktuelle "Position der Odometrie einlesen
		
		SerWrite("Rechte Odometrie testen: ",24); //Wert der rechten Odometrie Senden
		PrintCharR(data[1]);
		SerWrite("\r\n\n",3);
		
		for (i=0; i<400; i++) 		//1 sec pause zwischen jedem erscheinen des odo-wertes
			{
				Sleep(72);
			}
	}
	return 0;
	
}
nun nochmals ein paar fragen, damit ich die funktionen allgemein verstehen:

Code:
void PrintCharR()
hier in den klammer muss nicht zwingend etwas drinn stehen??
muss die funktion zwingend mit "void" deklariert werden?

Code:
PrintCharR(data[1]);
zu was dient das "data[1]" in den klammern??

allgemein:
könnte mir jemand anhand von meinem beispiel versuchen zu erklären, wie der syntax einer funktion... funktioniert??

wäre no1. thx gruß listner