- LiTime Speicher und Akkus         
Ergebnis 1 bis 4 von 4

Thema: error: parse error before '=' token

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.05.2007
    Alter
    32
    Beiträge
    183

    error: parse error before '=' token

    Anzeige

    Powerstation Test
    Ich habe die Fehlermeldung gleich als Thementitel genommen, da sie mich gleich 14 Mal erfreut.

    Folgender Code...
    Code:
    //////////////////////////////////////////////////////////////////
    // Odometrie- Programm                                          //
    //////////////////////////////////////////////////////////////////
    // Autor: Johannes Neumann                                      //
    // Version: 1                                                   //
    // Beginn der Entwicklung: 29.06.2007                           //
    // Fertigstellung        : xx.xx.xxxx                           //
    //////////////////////////////////////////////////////////////////
    
    
    // Includes ///////////////////////////////////////////////+
    #include "asuro.h"
    
    // Konstanten /////////////////////////////////////////////+
    #define cBarrier = 600
    #define cHysteresis = 15
    #define cBlack = 0
    #define cWhite = 1
    
    // Main- Funktion: Interne Variablen //////////////////////+
    	unsigned char Speed = 255;	 		// Festzulegende Geschwidigkeit von Asuro
    	signed int Counter = 0;        	 	// Der Counter, welcher den Unterschied zwischen Rechts und Links zählt
    	unsigned int OdoData[2] = {0,0};		// Variable für die Odometrie- Daten
    	signed int OdoStatus[2] = {0,0};		// Status (cBlack / cWhite) der einzelnen Räder
    	signed int Lights[2]; 
    	
    // Main- Funktion: Funktionskopf //////////////////////////+
    int main(void) {
    	
    // Main- Funktion: Initialisierung ////////////////////////+
    	Init();	
    	MotorDir(FWD, FWD);
    	OdometrieData(OdoData);
    	OdoStatus[0] = (OdoData[0] < cBarrier); // Festlegen der Startposition (cBlack / cWhite) durch Vergleich
    	OdoStatus[1] = (OdoData[1] < cBarrier); // der Daten mit der Grenze zwischen beiden Zuständen.
    	
    // Main- Funktion: Endlosschleife /////////////////////////+
    	while(1) {
    		OdometrieData(OdoData);         	// Odometriedaten einlesen
    		
    		if ((OdoStatus[0] == cBlack) && (OdoData[0] < cBarrier - cHystersis)) 
    		{
    			OdoStatus[0] = cWhite;			// Wenn der Linke Sensor von Schwarz auf Weiß wechselt...
    			Counter ++;						// Zählen...
    		}
    		else
    		if ((OdoStatus[0] == cWhite) && (OdoData[0] > cBarrier + cHystersis)) 
    		{
    			OdoStatus[0] = cBlack;			// Wenn der Linke Sensor von Weiß auf Schwarz wechselt...
    			Counter ++;						// Zählen...
    		}
    
    		if ((OdoStatus[1] == cBlack) && (OdoData[1] < cBarrier - cHystersis)) 
    		{
    			OdoStatus[1] = cWhite;			// Wenn der Rechte Sensor von Schwarz auf Weiß wechselt...
    			Counter --;						// Zählen...
    		}
    		else
    		if ((OdoStatus[1] == cWhite) && (OdoData[1] > cBarrier + cHystersis)) 
    		{
    			OdoStatus[1] = cBlack;			// Wenn der Rechte Sensor von Weiß auf Schwarz wechselt...
    			Counter --;						// Zählen...
    		}
    		
    		Lights[0] = OdoStatus[0];			// BackLed- Status setzen
    		Lights[1] = OdoStatus[1];
    		
    		BackLED(Lights[0], Lights[1]);		// BackLeds setzen
    		
    		if (Counter < -255) Counter = -255;// Überlauf verhindern
    		if (Counter >  255) Counter =  255;//    - || -
    		
    		if (Counter > 0) MotorSpeed(Speed - Counter, Speed) 
    		else
    		if (Counter < 0) MotorSpeed(Speed, Speed + Counter);
    	}
    
    	return 0;	
    }
    ...erzeugt beim Compillieren mit der AsuroLib folgenden Fehler:
    Code:
    test.c:34: error: parse error before '=' token
    test.c:35: error: parse error before '=' token
    test.c:41: error: parse error before '=' token
    test.c:41: error: parse error before '=' token
    test.c:43: error: parse error before '=' token
    test.c:47: error: parse error before '=' token
    test.c:47: error: parse error before '=' token
    test.c:49: error: parse error before '=' token
    test.c:53: error: parse error before '=' token
    test.c:53: error: parse error before '=' token
    test.c:55: error: parse error before '=' token
    test.c:59: error: parse error before '=' token
    test.c:59: error: parse error before '=' token
    test.c:61: error: parse error before '=' token
    test.c:74: error: parse error before "else"
    Ich weiß echt nicht, was an meinen "="s so schlimm sein soll. Kann mir jemand helfen?

    Danke schonmal,
    Bääääär

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    03.11.2004
    Ort
    Süderlügum
    Alter
    42
    Beiträge
    86
    Lass einfach das = aus den defines weg.
    Also z.B.
    #define cBarrier 600
    Bei Defines wird nicht einer Variablen etwas zugewiesen, sondern vom Preprocessor noch vor dem Compilen z.B. jedes im Quellcode vorkommende "cBarrier" durch den Wert 600 ersetzt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.05.2007
    Alter
    32
    Beiträge
    183
    och nee. Jepp, du hast recht. Nun, ich progge seit mehreren Jahren Delphi. Und da werden die Konstanten mit "=" definiert. Simple "Syntaxvertauschung".

    Danke.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.05.2007
    Alter
    32
    Beiträge
    183
    es sind noch 2 kleine fehler drin:
    Zeile 74: ein ";" fehlt.

    Und bei den Abfragen muss es natürlich cHysteresis heißen.

Berechtigungen

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

LiFePO4 Speicher Test