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

Thema: Fehler beim Compilieren der Methoden der ServoLib

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    30.12.2009
    Ort
    Koblenz
    Alter
    44
    Beiträge
    78

    Fehler beim Compilieren der Methoden der ServoLib

    Anzeige

    Praxistest und DIY Projekte
    Wie gesagt bekome ich beim compilieren einen Fehler den ich mir nicht erklären kann. Die Attribute der eingebundenen #include "RP6ControlServoLib.h" verwendet er anstandslos. Nur die beiden Methoden mag er gar nicht akzeptieren

    M32-File (Erweiterte RP6Control_08_I2CMaster)
    Code:
    #include "RP6ControlServoLib.h"
    
    #include "RP6ControlLib.h" 		// The RP6 Control Library. 
    #include "RP6I2CmasterTWI.h"	// I2C Master Library
    
    #include "RP6M32Platinenmodul.h"
    
    
    /*****************************************************************************/
    /*****************************************************************************/
    // Include our new "RP6 Control I2C Master library":
    
    #include "RP6Control_I2CMasterLib.h"
    
    ...
    
    
    ...
    
    /*****************************************************************************/
    // Main function - The program starts here:
    
    int main(void)
    {
    	initRP6Control();  
    	initLCD();
        
    	writeString_P("\n\nRP6 CONTROL M32 I2C Master Example Program!\n"); 
        writeString_P("\nInterrupts - part 2...\n"); 
    
    	// ---------------------------------------
    	// The Event Handlers can be set the same way as with the 
    	// RP6Lib:
    	ACS_setStateChangedHandler(acsStateChanged);
    	BUMPERS_setStateChangedHandler(bumpersStateChanged);
    	IRCOMM_setRC5DataReadyHandler(receiveRC5Data);
    	// New LowBat Event Handler:
    	BATTERY_setLowVoltageHandler(batteryVoltageLow);
    	// New Watchdog Request Event Handler:
    	WDT_setRequestHandler(watchDogRequest); 
    	
    	// ---------------------------------------
    	// Init TWI Interface:
    	I2CTWI_initMaster(100);  
    	I2CTWI_setRequestedDataReadyHandler(I2C_requestedDataReady);
    	I2CTWI_setTransmissionErrorHandler(I2C_transmissionError);
    
    	sound(180,80,25);
    	sound(220,80,25);
    
    	setLEDs(0b1111);
    
    	showScreenLCD("################", "################");
    	mSleep(500);
    	showScreenLCD("I2C-Master", "Example Program 3");
    	mSleep(1000);
    	setLEDs(0b0000);
    	
    	// ---------------------------------------
    	// Setup ACS power:
    	I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_ACS_POWER, ACS_PWR_MED);
    	// Enable Watchdog for Interrupt requests:
    	I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT, true);
    	// Enable timed watchdog requests:
    	I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT_RQ, true);
    
        showScreenLCD("ACS Status:", "");
        
    	startStopwatch3();
    	startStopwatch2();
    
    	initSERVO(SERVO2|SERVO4); 
    	servo2_position = 95; 
    	servo4_position = 90;
    	uint8_t cmd = DISTANZMESSEN;
    
    	while(true) 
    	{ 
    		task_LCDHeartbeat();
    		task_checkINT0();
    	    task_I2CTWI();
    		if(getPressedKeyNumber() == 4) cmd = FAHRTRICHTUNG;
    		cmd = behavior(cmd);
    	}
    	return 0;
    }

    Und das ist die Fehlermeldung

    Code:
    > "C:\Users\MagelansPC\Desktop\RP6\Projekt 1\Projekt\M32-Modulsteuerung\\make_all.bat" 
    
    C:\Users\MagelansPC\Desktop\RP6\Projekt 1\Projekt\M32-Modulsteuerung>set LANG=C 
    
    C:\Users\MagelansPC\Desktop\RP6\Projekt 1\Projekt\M32-Modulsteuerung>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:    8560 bytes (26.1% Full)
    (.text + .data + .bootloader)
    
    Data:        277 bytes (13.5% Full)
    (.data + .bss + .noinit)
    
    
    
    
    Compiling: RP6Control_08_I2CMaster.c
    avr-gcc -c -mmcu=atmega32 -I. -gdwarf-2   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=RP6Control_08_I2CMaster.lst -I../../RP6Lib -I../../RP6Lib/RP6control -I../../RP6Lib/RP6common -std=gnu99 -MD -MP -MF .dep/RP6Control_08_I2CMaster.o.d RP6Control_08_I2CMaster.c -o RP6Control_08_I2CMaster.o
    
    Linking: RP6Control_08_I2CMaster.elf
    avr-gcc -mmcu=atmega32 -I. -gdwarf-2   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=RP6Control_08_I2CMaster.o -I../../RP6Lib -I../../RP6Lib/RP6control -I../../RP6Lib/RP6common -std=gnu99 -MD -MP -MF .dep/RP6Control_08_I2CMaster.elf.d RP6Control_08_I2CMaster.o ../../RP6Lib/RP6control/RP6ControlLib.o ../../RP6Lib/RP6common/RP6uart.o RP6Control_I2CMasterLib.o ../../RP6Lib/RP6common/RP6I2CmasterTWI.o --output RP6Control_08_I2CMaster.elf -Wl,-Map=RP6Control_08_I2CMaster.map,--cref    -lm
    RP6Control_08_I2CMaster.o: In function `main':
    C:\Users\MagelansPC\Desktop\RP6\Projekt 1\Projekt\M32-Modulsteuerung/RP6Control_08_I2CMaster.c:331: undefined reference to `initSERVO'
    make: *** [RP6Control_08_I2CMaster.elf] Error 1
    
    > Process Exit Code: 2
    > Time Taken: 00:01
    Ich hoffe es schauen nicht alle die WM im Fernsehen (P.S. das ZDF streamt)

    Gruß und schönen Abend noch.
    Ich habe bereits bis Unendlich gezählt. Zweimal, und zurück

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Frage:
    RP6ControlServoLib.c im makefile eingebunden?

    Gruß Dirk

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.03.2010
    Beiträge
    205
    Das hat bei mir auch noch nie funktioniert.
    Kann man eigentlich die RP6ControlServoLib.c auch im Programm einbinden oder muss man die im Makefile deklarieren?
    Nichts existiert durch sich allein!
    Bild hier  

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    30.12.2009
    Ort
    Koblenz
    Alter
    44
    Beiträge
    78
    SRC += $(RP6_LIB_PATH)/RP6control/RP6ControlServoLib.c

    Jetzt ja, aber hat keine Auswikrungen gehabt

    Edit: Nachdem ich die Position vom Einbinden geändert habe geht es, vielen Dank
    Ich habe bereits bis Unendlich gezählt. Zweimal, und zurück

Berechtigungen

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

Labornetzteil AliExpress