-
ich wollte die ServoLib auch mal ausprobieren und hab das Demoprogramm kopiert, aber beim kompilieren kommt die Fehlermeldung:
H:\RP6\RP6Examples\Programme\servoLibTest>set LANG=C
H:\RP6\RP6Examples\Programme\servoLibTest>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.
Compiling: ServoLibTest.c
avr-gcc -c -mmcu=atmega32 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ServoLibTest.lst -I../../RP6lib -I../../RP6lib/RP6base -I../../RP6lib/RP6common -std=gnu99 -MD -MP -MF .dep/ServoLibTest.o.d ServoLibTest.c -o ServoLibTest.o
../../RP6lib/RP6base/RP6RobotBaseLib.h:180: warning: inline function 'isMovementComplete' declared but never defined
../../RP6lib/RP6base/RP6RobotBaseLib.h:67: warning: inline function 'setLEDs' declared but never defined
../../RP6lib/RP6base/RP6RobotBaseLib.h:180: warning: inline function 'isMovementComplete' declared but never defined
../../RP6lib/RP6base/RP6RobotBaseLib.h:67: warning: inline function 'setLEDs' declared but never defined
Linking: ServoLibTest.elf
avr-gcc -mmcu=atmega32 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ServoLibTest.o -I../../RP6lib -I../../RP6lib/RP6base -I../../RP6lib/RP6common -std=gnu99 -MD -MP -MF .dep/ServoLibTest.elf.d ServoLibTest.o ../../RP6lib/RP6base/RP6RobotBaseLib.o ../../RP6lib/RP6common/RP6uart.o ../../RP6lib/RP6base/RP6BaseServoLib.o --output ServoLibTest.elf -Wl,-Map=ServoLibTest.map,--cref -lm
ServoLibTest.o: In function `main':
H:\RP6\RP6Examples\Programme\servoLibTest/ServoLibTest.c:24: undefined reference to `setLEDs'
../../RP6lib/RP6base/RP6BaseServoLib.o: In function `initSERVO':
H:\RP6\RP6Examples\Programme\servoLibTest/../../RP6lib/RP6base/RP6BaseServoLib.c:66: undefined reference to `setLEDs'
make: *** [ServoLibTest.elf] Error 1
> Process Exit Code: 2
> Time Taken: 00:01
das Problem hab ich auch bei anderen Programmen -.- könnt ihr mir helfen ??
-
jetzt gehts :D ich hab mir die neuste Library runtergeladen und jetz funktionierts
-
welcher Pin ist denn am XBUS E_INT ?? xD
-
-
ich hab das servo an E_INT angeschlossen, in der RP6BaseServoLib.h den Port geändert (Servo6 gelöscht und aus den anderen möglichkeiten die mit E_INT kopiert und anstatt Servo6 eingefügt ), aber das Servo bewegt sich nicht ?? was könnte ich falsch gemacht haben ??
-
@I♥ROBOTIC:
1.) In der RP6BaseServoLib.c muss auch noch die Funktion initSERVO für SERVO6 auf E_INT1 angepaßt werden.
2.) Zur Einstellung von Servo 6 muss die Variable servo6_position genommen werden (hast du sicher gemacht ...).
Gruß Dirk
-
2. hab ich gemacht ja :D und die funktion initSERVO hab ich soweit angepasst ( SL6 zu E_INT1 geändert), aber muss ich da auch den Port und das register ändern ?? also das DDRB und das PORTB ??
EDIT: schon ok :D steht eh drunter welcher port und so :D
-
Wollte gerade das Demofile kompilieren, habe allerdings einige Fehlermeldungen erhalten:
Code:
In file included from ../../RP6Lib/RP6base/RP6BaseServoLib.h:5,
from ../../RP6Lib/RP6base/RP6BaseServoLib.h:5,
from ../../RP6Lib/RP6base/RP6BaseServoLib.h:5,
from RP6Base_I2CMaster_01_uncommented.c:5:
../../RP6Lib/RP6base/RP6BaseServoLib.h: At top level:
../../RP6Lib/RP6base/RP6BaseServoLib.h:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'pos'
../../RP6Lib/RP6base/RP6BaseServoLib.h:9: error: redefinition of 'main'
../../RP6Lib/RP6base/RP6BaseServoLib.h:10: error: previous definition of 'main' was here
../../RP6Lib/RP6base/RP6BaseServoLib.h: In function 'main':
../../RP6Lib/RP6base/RP6BaseServoLib.h:27: error: 'SERVO1' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:27: error: 'SERVO2' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:31: error: 'true' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:34: error: 'servo1_position' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:34: error: 'pos' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:35: error: 'servo2_position' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:37: error: 'RIGHT_TOUCH' undeclared (first use in this function)
In file included from ../../RP6Lib/RP6base/RP6BaseServoLib.h:5,
from ../../RP6Lib/RP6base/RP6BaseServoLib.h:5,
from RP6Base_I2CMaster_01_uncommented.c:5:
../../RP6Lib/RP6base/RP6BaseServoLib.h: At top level:
../../RP6Lib/RP6base/RP6BaseServoLib.h:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'pos'
../../RP6Lib/RP6base/RP6BaseServoLib.h:9: error: redefinition of 'main'
../../RP6Lib/RP6base/RP6BaseServoLib.h:10: error: previous definition of 'main' was here
../../RP6Lib/RP6base/RP6BaseServoLib.h: In function 'main':
../../RP6Lib/RP6base/RP6BaseServoLib.h:27: error: 'SERVO1' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:27: error: 'SERVO2' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:31: error: 'true' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:34: error: 'servo1_position' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:34: error: 'pos' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:35: error: 'servo2_position' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:37: error: 'RIGHT_TOUCH' undeclared (first use in this function)
In file included from ../../RP6Lib/RP6base/RP6BaseServoLib.h:5,
from RP6Base_I2CMaster_01_uncommented.c:5:
../../RP6Lib/RP6base/RP6BaseServoLib.h: At top level:
../../RP6Lib/RP6base/RP6BaseServoLib.h:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'pos'
../../RP6Lib/RP6base/RP6BaseServoLib.h:9: error: redefinition of 'main'
../../RP6Lib/RP6base/RP6BaseServoLib.h:10: error: previous definition of 'main' was here
../../RP6Lib/RP6base/RP6BaseServoLib.h: In function 'main':
../../RP6Lib/RP6base/RP6BaseServoLib.h:27: error: 'SERVO1' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:27: error: 'SERVO2' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:31: error: 'true' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:34: error: 'servo1_position' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:34: error: 'pos' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:35: error: 'servo2_position' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:37: error: 'RIGHT_TOUCH' undeclared (first use in this function)
In file included from RP6Base_I2CMaster_01_uncommented.c:5:
../../RP6Lib/RP6base/RP6BaseServoLib.h: At top level:
../../RP6Lib/RP6base/RP6BaseServoLib.h:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'pos'
../../RP6Lib/RP6base/RP6BaseServoLib.h:9: error: redefinition of 'main'
../../RP6Lib/RP6base/RP6BaseServoLib.h:10: error: previous definition of 'main' was here
../../RP6Lib/RP6base/RP6BaseServoLib.h: In function 'main':
../../RP6Lib/RP6base/RP6BaseServoLib.h:27: error: 'SERVO1' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:27: error: 'SERVO2' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:31: error: 'true' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:34: error: 'servo1_position' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:34: error: 'pos' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:35: error: 'servo2_position' undeclared (first use in this function)
../../RP6Lib/RP6base/RP6BaseServoLib.h:37: error: 'RIGHT_TOUCH' undeclared (first use in this function)
RP6Base_I2CMaster_01_uncommented.c: At top level:
RP6Base_I2CMaster_01_uncommented.c:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'pos'
RP6Base_I2CMaster_01_uncommented.c:9: error: redefinition of 'main'
../../RP6Lib/RP6base/RP6BaseServoLib.h:10: error: previous definition of 'main' was here
RP6Base_I2CMaster_01_uncommented.c: In function 'main':
RP6Base_I2CMaster_01_uncommented.c:27: error: 'SERVO1' undeclared (first use in this function)
RP6Base_I2CMaster_01_uncommented.c:27: error: 'SERVO2' undeclared (first use in this function)
RP6Base_I2CMaster_01_uncommented.c:31: error: 'true' undeclared (first use in this function)
RP6Base_I2CMaster_01_uncommented.c:34: error: 'servo1_position' undeclared (first use in this function)
RP6Base_I2CMaster_01_uncommented.c:34: error: 'pos' undeclared (first use in this function)
RP6Base_I2CMaster_01_uncommented.c:35: error: 'servo2_position' undeclared (first use in this function)
RP6Base_I2CMaster_01_uncommented.c:37: error: 'RIGHT_TOUCH' undeclared (first use in this function)
make.exe: *** [RP6Base_I2CMaster_01_uncommented.o] Error 1
> Process Exit Code: 2
> Time Taken: 00:21
Das ist nur ein kleiner Ausschnitt, da die Fehlermeldungen ewig lang sind, STRG+A an der Stelle leider nicht geht und meine Nachricht hier sowieso maximal 20000 Zeichen enthalten darf.
Makefile ist angepasst, daran kann es also nicht liegen. Der Name der Datei, also "RP6Base_I2CMaster_01_uncommented.c" stimmt schon, ich überschreibe immer Example-Projekte, weil das Gefrickel mit dem Compiler und den Makefiles bei mir sonst nur Probleme macht.
-
@roflcopter:
Check:
1. Makefile wirklich so geändert, wie im Beitrag (24.7.2009, 21:40) gezeigt?
2. Header-Datei (RP6BaseServoLib.h) und Bibliothek-Datei (RP6BaseServoLib.c) richtig und komplett kopiert und nicht vertauscht?
3. Demoprogramm-Datei richtig kopiert und ohne Reste eines anderen Programms abgelegt?
Falls alles so ok: Library (.c und .h) noch einmal kopieren. Dabei den kompletten Text markieren und Copy, dann ein Windows-Editor Fenster öffnen und mit Paste einfügen. Die Datei zunächst als .txt speichern und danach in .c bzw. .h umbenennen.
Mit der Demo genau so verfahren.
Dann alles neu kompilieren.
Gruß Dirk