- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 10

Thema: NIBObee: motpid.h einbinden erzeugt Fehler

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2010
    Ort
    Delmenhorst
    Beiträge
    18

    NIBObee: motpid.h einbinden erzeugt Fehler

    Anzeige

    E-Bike
    Hallo, liebe Lötwillige,
    ich habe die aktuelle nibobeelib 1.3 installiert, und will folgenden Fünfzeiler builden:

    Code:
    #include <nibobee/motpid.h>
    int main() 
    {
    	motpid_init();
    	motpid_setSpeed(50,50);
    	return 0;
    }
    Aber ich erhalte folgende Fehlermeldungen:

    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...
    Die vier betreffenden Zeilen in motpid.h sind:
    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);
    Kann mir jemand sagen, was ich falsch mache?
    Vielen Dank für eine Antwort.

    Gruß
    Hanno

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2007
    Ort
    Stolberg
    Beiträge
    111
    Hallo hanno72,

    Du hast folgende Zeile als erste Zeile der includes vergessen:

    Code:
    #include <nibo/niboconfig.h>

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    26.11.2010
    Beiträge
    13
    Funktioniert bei mir, trotz
    Code:
    #include <nibobee/iodefs.h>
    nicht.
    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

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Ist die
    #include <stdint.h>
    eingebunden?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    26.11.2010
    Beiträge
    13
    Zitat Zitat von TobiKa
    Ist die
    #include <stdint.h>
    eingebunden?
    Damit taucht der Fehler weiterhin auf, die betroffenen Stellen (in der Headerdatei) sind folgende:
    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);

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Zeig mal die ganze Datei

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    26.11.2010
    Beiträge
    13
    Zitat Zitat von TobiKa
    Zeig mal die ganze Datei
    Headerdatei (ohne Kommentare usw.):
    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 mach den PC mal aus und schau mir das morgen nochmal an - ggf. versuch ich die Realisierung ohne motpid.
    (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 )

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Hehe, ja das hilft manchmal.
    Irgendetwas fehlt ihm. Aber ohen das selbst hier zu haben, ist es grad schlecht nachzuvollziehen.

  9. #9
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Nur mal ein Schuß ins Blaue:

    Im Startbeitrag wird folgende Fehlermeldung gezeigt:

    ....Program Files (x86)\NIBObeeLib\include/nibobee/motpid.h:66: error: expected ')' before 'immediate'
    Die betreffende Zeile ist wohl:

    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!

  10. #10
    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

Berechtigungen

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

Labornetzteil AliExpress