Schönen guten Nachmittag,
ich habe ein Programm geschrieben (Tischkante erkennen) und wollte nun eure Meinung dazu hören
- was haltet ihr allgemein von dem Code
- lässt sich daraus was machen
- was könnte besser sein
- was ist bereits in ordnung
-- Außerdem brauche ich eure Hilfe bei einer Fehlermeldung--:
test.c:4: error: expected identifier or '(' before '{' token
bestimmt kennen einige von euch die schon und wissen was zu tun ist.

Hier nun der Code(Ich hab sehr viele Kommentare verwendet nicht wundern):
Code:
#include "asuro.h" 
#define STOP 80
int main(void);
{
unsigned int lineData[2];
int ergAL,ergBL,eL;
int ergAR,ergBR,eR

     
   Init(); 
unsigned char running = TRUE;
//------------------------------------------------------------------------//
{StatusLED(GREEN);
	FrontLED(ON);				//LED wird eingeschaltet|ASURO steht auf dem Tisch
		Msleep(10);				//Pause bis LED an ist
	lineData(lineData);			//Speicher bereitstellen
	Konf0L=  (lineData[0]);	//Ergebnis T9 	(Links)
	Konf0R=  (lindData[1]);	//Ergebnis T10 	(Rechts)
	
//------------------------------------------------------------------------//

{StatusLED(RED);				//Zur Prüfung ob ASURO auf hier misst
	FrontLED(OFF);				//LED ausschalten|ASURO steht auf dem Tisch
		Msleep(10);				//Wieder eine kurze Pause
	lineData(lineData);			//Bereitstellen des Speichers
	Konf1L= (lineData[0]);	 	//Ergebnis T9 	(Links)
	Konf1R= (lindData[1]);		//Ergebnis T10 	(Rechts)
	}
//------------------------------------------------------------------------//

/*
Jetzt berechnen wir aus dem beiden eben ermittelten 
Werten einen Zwischenwert. Dieser gibt an, wann der 
ASURO auf dem Tisch ist. 
*/

Konf01 = (Konf0-Konf1);
//------------------------------------------------------------------------//
/*
Im nächsten Schritt wird ein Wert ermittelt,
für den Fall, dass der ASURO sich über der 
Tischkante befinden. Im Prinzip ist es 
der gleiche Code wie eben.
*/


//------------------------------------------------------------------------//
{StatusLED(YELLOW);				//Einfach zur Unterscheidung, dass der ASURO HINTER dem Tisch misst
	FrontLED(ON);				//LED wird eingeschaltet|ASURO steht über der Kante
		Msleep(10);				//Pause bis LED an ist
	lineData(lineData);			//Speicher bereitstellen
	Konf2L=  (lineData[0]);	//Ergebnis T9 	(Links)
	Konf2R=  (lindData[1]);	//Ergebnis T10 	(Rechts)
	
//------------------------------------------------------------------------//
{StatusLED(RED);				//Zur Prüfung ob ASURO auch hier misst
		FrontLED(OFF);			//LED ausschalten|ASURO steht über der Kante
	Msleep(10);					//Wieder eine kurze Pause
	lineData(lineData);			//Bereitstellen des Speichers
	Konf3L= (lineData[0]); 	//Ergebnis T9 	(Links)
	Konf3R= (lindData[1]);		//Ergebnis T10 	(Rechts)
	
//------------------------------------------------------------------------//

/*
Berechnung einiger Zwischenwerte
*/

ZW01l= (Konf0L-Konf1L);		//ASURO auf dem Tisch| Zwischenwert für Links
ZW01r= (Konf0R-Konf1R);		//ASURO auf dem Tisch| Zwischenwert für Rechts

ZW23l= (Konf2L-Konf3L);		//ASURO über der Kante| Zwischenwert für Links
ZW23r= (Konf2R-Konf3R);		//ASURO über der Kante| Zwischenwert für Rechts


do { 
	MotorSpeed	(150,150);
	MotorDIR	(FWD,FWD);
        if ((ZW01l < ZW23l) || (ZW01r < ZW23R)) 
		{ 
         MotorDir(RWD,RWD);
		 MotorSpeed(225,225);
		 Msleep(500);
		 MotorSpeed(0,0);
         BackLED(ON,ON); 
        
      }       
   } 
   while(1); 
   return 0; 
}