Hallo hanno72,
Du hast folgende Zeile als erste Zeile der includes vergessen:
Code:#include <nibo/niboconfig.h>
Hallo, liebe Lötwillige,
ich habe die aktuelle nibobeelib 1.3 installiert, und will folgenden Fünfzeiler builden:
Aber ich erhalte folgende Fehlermeldungen:Code:#include <nibobee/motpid.h> int main() { motpid_init(); motpid_setSpeed(50,50); return 0; }
Die vier betreffenden Zeilen in motpid.h sind:Code:Build started 22.1.2011 at 20:33:15 avr-gcc -I"C:\Users\hanno72\Documents\AVRStudioProjects\del-bee-3\..\..\..\..\..\Program Files (x86)\NIBObeeLib\include" -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -D_NIBOBEE_ -DF_CPU=15000000UL -Os -funsigned-char -funsigned-bitfields -fpack-st ruct -fshort-enums -MD -MP -MT del-bee-3.o -MF dep/del-bee-3.o.d -c ../del-bee-3.c In file included from ../del-bee-3.c:1: C:\Users\hanno72\Documents\AVRStudioProjects\del-bee-3\..\..\..\..\..\Program Files (x86)\NIBObeeLib\include/nibobee/motpid.h:66: error: expected ')' before 'immediate' C:\Users\hanno72\Documents\AVRStudioProjects\del-bee-3\..\..\..\..\..\Program Files (x86)\NIBObeeLib\include/nibobee/motpid.h:76: error: expected ')' before 'left' C:\Users\hanno72\Documents\AVRStudioProjects\del-bee-3\..\..\..\..\..\Program Files (x86)\NIBObeeLib\include/nibobee/motpid.h:86: error: expected ')' before 'left' C:\Users\hanno72\Documents\AVRStudioProjects\del-bee-3\..\..\..\..\..\Program Files (x86)\NIBObeeLib\include/nibobee/motpid.h:96: error: expected ')' before 'left' ../del-bee-3.c: In function 'main': ../del-bee-3.c:5: warning: implicit declaration of function 'motpid_setSpeed' make: *** [del-bee-3.o] Error 1 Build failed with 4 errors and 1 warnings...
Kann mir jemand sagen, was ich falsch mache?Code:void motpid_stop(uint8_t immediate); void motpid_setSpeed(int16_t left, int16_t right); void motpid_setTarget(int16_t left, int16_t right, uint16_t speed); void motpid_setTargetRel(int16_t left, int16_t right, uint16_t speed);
Vielen Dank für eine Antwort.
Gruß
Hanno
Hallo hanno72,
Du hast folgende Zeile als erste Zeile der includes vergessen:
Code:#include <nibo/niboconfig.h>
Funktioniert bei mir, trotz
nicht.Code:#include <nibobee/iodefs.h>
Ich bekomme die gleichen Fehler, wie der Threadersteller:
Code:C:\Program Files (x86)\NIBObeeLib\include/nibobee/motpid.h:44: error: expected ';', ',' or ')' before numeric constant C:\Program Files (x86)\NIBObeeLib\include/nibobee/motpid.h:54: error: expected ';', ',' or ')' before numeric constant C:\Program Files (x86)\NIBObeeLib\include/nibobee/motpid.h:64: error: expected ';', ',' or ')' before numeric constant
Ist die
#include <stdint.h>
eingebunden?
Damit taucht der Fehler weiterhin auf, die betroffenen Stellen (in der Headerdatei) sind folgende:Zitat von TobiKa
Code:1: void motpid_setSpeed(int16_t left, int16_t right); 2: void motpid_setTarget(int16_t left, int16_t right, uint16_t speed); 3: void motpid_setTargetRel(int16_t left, int16_t right, uint16_t speed);
Zeig mal die ganze Datei
Headerdatei (ohne Kommentare usw.):Zitat von TobiKa
Ich mach den PC mal aus und schau mir das morgen nochmal an - ggf. versuch ich die Realisierung ohne motpid.Code:#ifndef _NIBOBEE_MOTPID_H_ #define _NIBOBEE_MOTPID_H_ #ifdef __cplusplus extern "C" { #endif void motpid_init(); void motpid_release(); void motpid_stop(uint8_t immediate); void motpid_setSpeed(int16_t left, int16_t right); void motpid_setTarget(int16_t left, int16_t right, uint16_t speed); void motpid_setTargetRel(int16_t left, int16_t right, uint16_t speed); #ifdef __cplusplus } // extern "C" #endif #endif // _NIBOBEE_MOTPID_H_
(Ich hab gerade nochmal ein neues Projekt erstellt, da kam die Fehlermeldung "undefined reference to 'motpid_init()' - vielleicht bin ich gerade aber auch nur ein wenig müde )
Hehe, ja das hilft manchmal.
Irgendetwas fehlt ihm. Aber ohen das selbst hier zu haben, ist es grad schlecht nachzuvollziehen.
Hallo
Nur mal ein Schuß ins Blaue:
Im Startbeitrag wird folgende Fehlermeldung gezeigt:
Die betreffende Zeile ist wohl:....Program Files (x86)\NIBObeeLib\include/nibobee/motpid.h:66: error: expected ')' before 'immediate'
void motpid_stop(uint8_t immediate);
Mein Tipp: Der Kompiller erkennt uint8_t nicht als Datentyp und interpretiert es als Variablenname. Dann müsste anstatt "immediate" eine Klammer folgen. Abhilfe wäre dann vielleicht ein
#include <inttypes.h>
im Kopf von motpid.h.
Plan B wäre ein Blick in die Datei motpid.c auf die Zeile 66, denn diese Zeile gibt es nicht in motpid.h! Vielleicht stimmen die Definitionen der Parameter in den Funktionen in motpid.h und motpid.c nicht überein.
Oder 3.: motpid.c ist nicht eingebunden.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo zusammen,
ich habe eben versucht das Beispielprogramm vom bgx1 am NIBObee auszuprobieren und etwas abzuändern. Leider läuft bei mir der Kompiliervorgang auch nicht durch und bricht ab mit
undefined reference to `motpid_init'
wie im Beitrag von aurikeL. Leider hat weder das Einfügen von inittypes etwas gebracht, noch ein anderer Vorschlag. Habt ihr es nun hinbekommen?
vielen Dank,
KS
Lesezeichen