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--:
bestimmt kennen einige von euch die schon und wissen was zu tun ist.test.c:4: error: expected identifier or '(' before '{' token
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; }







Zitieren


Lesezeichen