- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 4 von 4

Thema: Syntaxfehler bei I2C

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    523

    Syntaxfehler bei I2C

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich bin hier am verzweifeln... Ich finde einfach den Fehler nicht... =(
    Bei folgendem Code:
    Code:
    #include "RP6ControlLib.h"
    #include "PCConnection.h"
    #include "RP6Control_I2CMasterLib.h"
    #include "RP6uart.h"
    #include "RP6I2CmasterTWI.h"
    
    #define I2C_SRF02_ADR_1 224;
    #define I2C_SRF02_ADR_2 226;
    
    int SRF02_Entfernung(void)
    {
    	I2CTWI_transmit2Bytes(I2C_SRF02_ADR_1,0,81);
    	uint8_t firmware;
    	do
    	{
    		//I2CTWI_transmitByte(I2C_SRF02_ADR_1, 0);
    		//firmware = I2CTWI_readByte(I2C_SRF02_ADR_1);
    		mSleep(1);
    	}
    	while((firmware==255));
    	int entfernung;
    	uint8_t lowByte;
    	uint8_t highByte;
    	return entfernung;
    }
    
    int main(void) 
    {
    	initRP6Control(); 
    	initLCD(); 
    	initRCConnection();	
    	
    	setStopwatch1(0);
    	sound(180,80,25);
    	sound(220,80,0);
    	startStopwatch1();
    
    	while(true)  
    	{ 		
    		task_PCConnection();
    		
    		if(getStopwatch1() >5000)
    		{
    			externalPort.LED1 = adcBat >600; 
    			externalPort.LED2 = adcBat >675; 
    			externalPort.LED3 = adcBat >750; 
    			externalPort.LED4 = adcBat >825;
    			outputExt();
    			setStopwatch1(0);
    		}
    		int entfernung = SRF02_Entfernung();
    		
    	} 
    	return 0; 
    }
    kommt beim make all folgender Fehler:
    Code:
    I:\RP6\Programme\Eigene\RC-Steering>set LANG=C
    
    I:\RP6\Programme\Eigene\RC-Steering>make all
    
    -------- begin --------
    avr-gcc (WinAVR 20100110) 4.3.3
    Copyright (C) 2008 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    
    Size before:
    AVR Memory Usage
    ----------------
    Device: atmega32
    
    Program:    8032 bytes (24.5% Full)
    (.text + .data + .bootloader)
    
    Data:        363 bytes (17.7% Full)
    (.data + .bss + .noinit)
    
    
    
    
    Compiling: RCSteering.c
    avr-gcc -c -mmcu=atmega32 -I. -gdwarf-2   -Os -funsigned-char -funsigned-bitfiel
    ds -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=RCSteering.
    lst -II:/RP6/Library -II:/RP6/Library/RP6control -II:/RP6/Library/RP6common -std
    =gnu99 -MD -MP -MF .dep/RCSteering.o.d RCSteering.c -o RCSteering.o
    RCSteering.c: In function 'SRF02_Entfernung':
    RCSteering.c:12: error: expected ')' before ';' token
    RCSteering.c:12: error: too few arguments to function 'I2CTWI_transmit2Bytes'
    RCSteering.c:23: warning: unused variable 'highByte'
    RCSteering.c:22: warning: unused variable 'lowByte'
    RCSteering.c: In function 'main':
    RCSteering.c:31: warning: implicit declaration of function 'initRCConnection'
    RCSteering.c:51: warning: unused variable 'entfernung'
    make: *** [RCSteering.o] Error 1
    
    I:\RP6\Programme\Eigene\RC-Steering>pause
    Drücken Sie eine beliebige Taste . . .
    Nun habe ich leider überhaupt keine Ahnung woran das liegen könnte =(
    Kann mir bitte jemand helfen?

    Fabi

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    Wenn du die betreffende Zeile
    Code:
    I2CTWI_transmit2Bytes(I2C_SRF02_ADR_1,0,81);
    mal auflöst und das define einsetzt, steht da:
    Code:
    I2CTWI_transmit2Bytes(224;,0,81);
    Der Fehler sind die #defines

    #define A B ersetzt jedes Vorkommen von A mit B.
    #ifndef MfG
    #define MfG

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    523
    Super =)
    Das ist ja richtig gemein Aber jetzt geht es und ist auch eigentlich ganz logisch.

    Fabi

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    Ne klassische Falle.
    Es geht aber noch gemeiner. Wenn in einer Funktionsdeklaration in einer Headerdatei z.B. ein ; fehlt (Gegenteil vom Problem hier), wird der Fehler u.U. in einer total anderen Datei angezeigt, die jedoch an sich fehlerfrei wäre.
    #ifndef MfG
    #define MfG

Berechtigungen

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

LiFePO4 Speicher Test