RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBObee NiBoBee und Grafik

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 6523 private projects
  • 367 public projects
  • 11357407 lines compiled
  • 49344 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA: NiBoBee und Grafik

NiBoBee und Grafik 8 Jahre 2 Monate her #1387

  • Jens35
  • Jens35s Avatar
  • OFFLINE
  • Junior Boarder
  • Beiträge: 7
Ich habe die Grafikerweiterung BGX1 gebaut.

Jetzt habe ich das Beispielprogramm genommen und wollte es in AVRStudio4 kompallieren
#include <nibobee/iodefs.h>
#include <nibobee/i2cmaster.h>
#include <nibobee/bgx1.h>
#include <nibobee/analog.h>
#include <nibobee/led.h>
#include <nibobee/delay.h>
#include <nibobee/clock.h>
#include <nibobee/odometry.h>
#include <nibobee/motpwm.h>
#include <nibobee/motpid.h>

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdio.h>

int main() {
  activate_output_group(IO_LEDS);  // LED bits als Output
  i2c_init();
 
  led_set(LED_L_YE, 0);    
  led_set(LED_R_YE, 0);   
  led_set(LED_L_RD, 1);    
  led_set(LED_R_RD, 1);
  while (!bgx1_init());
  led_set(LED_L_YE, 1);   
  led_set(LED_R_YE, 1);
  led_set(LED_L_RD, 0);   
  led_set(LED_R_RD, 0);
 
 
 
  motpwm_init();
  motpid_init();
 
  bgx1_reset();
  bgx1_termClear();
  // Hauptschleife:
  while(1) {
    sei();
    delay(20);
 
    if (bgx1_getStatus()==0xff) {
      bgx1_reset();
 
      bgx1_termGoto(2, 2);
      bgx1_termPrint("AN0:");
 
      bgx1_termGoto(2, 3);
      bgx1_termPrint("AN1:");
 
      bgx1_termGoto(2, 4);
      bgx1_termPrint("T:");
 
 
    }
 
    bgx1_DDR = 0x00;
    bgx1_PORT = 0x00;
 
    bgx1_syncInterface();
    bgx1_syncPort();
    uint16_t a0 = bgx1_getAnalog(0x40);
    uint16_t a1 = bgx1_getAnalog(0x41);
    uint16_t temp = bgx1_getAnalog(0xc8);
    char text[32];
 
    bgx1_setIllumination(a0);
 
    bgx1_termGoto(7, 2);
    sprintf(text, "%4i", (int)a0);
    bgx1_termPrint(text);
 
    bgx1_termGoto(7, 3);
    sprintf(text, "%4i", (int)a1);
    bgx1_termPrint(text);
 
    bgx1_termGoto(7, 4);
    sprintf(text, "%4i", (int)temp);
    bgx1_termPrint(text);
 
    bgx1_Leds = bgx1_Keys;
 
  }
  return 0;
}
 

Wenn ich compalieren will erhalte ich:
Build started 8.8.2012 at 22:53:06
C:\Programme\NIBObeeLib\lib\libnibobee_pid.a(motpid.o): In function `motpid_setTargetRel':
motpid.c:(.text.motpid_setTargetRel+0x22): undefined reference to `odometry_left'
motpid.c:(.text.motpid_setTargetRel+0x26): undefined reference to `odometry_left'
motpid.c:(.text.motpid_setTargetRel+0x36): undefined reference to `odometry_right'
motpid.c:(.text.motpid_setTargetRel+0x3a): undefined reference to `odometry_right'
C:\Programme\NIBObeeLib\lib\libnibobee_pid.a(motpid.o): In function `motpid_right_timer_int':
motpid.c:(.text.motpid_right_timer_int+0x6): undefined reference to `odometry_pid_right'
motpid.c:(.text.motpid_right_timer_int+0x76): undefined reference to `odometry_right'
motpid.c:(.text.motpid_right_timer_int+0x7a): undefined reference to `odometry_right'
motpid.c:(.text.motpid_right_timer_int+0x170): undefined reference to `odometry_pid_right'
C:\Programme\NIBObeeLib\lib\libnibobee_pid.a(motpid.o): In function `motpid_left_timer_int':
motpid.c:(.text.motpid_left_timer_int+0x6): undefined reference to `odometry_pid_left'
motpid.c:(.text.motpid_left_timer_int+0x76): undefined reference to `odometry_left'
motpid.c:(.text.motpid_left_timer_int+0x7a): undefined reference to `odometry_left'
motpid.c:(.text.motpid_left_timer_int+0x170): undefined reference to `odometry_pid_left'
C:\Programme\NIBObeeLib\lib\libnibobee_pid.a(motpid.o): In function `__vector_8':
motpid.c:(.text.__vector_8+0x4c): undefined reference to `clock_inc_irq'
collect2: ld returned 1 exit status
make: *** [NiBoGrafik.elf] Fehler 1
Build failed with 13 errors and 0 warnings...

Librarys:
libinbobee_line.a
libinbobee_base.a
libinbobee_utils.a
libinbobee_bgx1.a
libinbobee_pid.a
libinbobee_usart.a
libscanf_min.a


was mache ich falsch ?

Ergänzung:
es geht, wenn ich dies ändere
// motpid_init();
was macht die Funktion ?
wo bekomme ich sie her ?

Na toll, das Beispiel ist wohl fehlerhaft, siehe hier
www.roboternetz.de/community/threads/51528-NIBObee-motpid-h-einbinden-erzeugt-Fehler

Wenigsten geht das Display und gibt irgend welche Zahlen aus...
Letzte Änderung: 8 Jahre 2 Monate her von Jens35.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

NiBoBee und Grafik 6 Jahre 7 Monate her #2852

  • Mat_bot
  • Mat_bots Avatar
  • OFFLINE
  • Fresh Boarder
  • Beiträge: 4
Hi Jens35,

bei mir ist die selbe Fehlermeldung gekommen, als ich das Bluetooth-Terminal editiert habe und compilieren wollte. Da ich noch einen Satz aus dem Programmier-Tutorial im Hinterkopf hatte - zumal ich das erst letzte Woche gelesen habe :) - war recht schnell klar, wo das Problem liegen könnte. Auf Seite 16 im Tutorial Version 24.4.2012 steht: "Die Auswahlreihenfolge muss hierbei eingehalten werden"

Ich weiß jetzt zwar nicht, wie aktuell Dein Problem noch ist, aber damit es einfach mal dokumentiert ist, hier die Lösung: Im AVR-Studio (4) muss in den Projekteinstellungen die Bibliothek "libnibobee_pid.a" eingebunden sein. (Hast Du ja auch gemacht :) ) ABER: die Bibliothek muss ganz oben in der Liste stehen.

Zumindest hat der Compiler danach nichts mehr zu beanstanden gehabt. :)

Gruß, Mat_bot
Der Administrator hat öffentliche Schreibrechte deaktiviert.

NiBoBee und Grafik 1 Jahr 9 Monate her #4289

  • voneinem
  • voneinems Avatar
  • OFFLINE
  • Junior Boarder
  • Beiträge: 11
Vielen Dank für den Tip mit der Reihenfolge!
Ich hatte den gleichen Linkerfehler - wenn ich -lnibobee_pid an die erste Stelle setze funktioniert es. :clap:
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
Ladezeit der Seite: 0.126 Sekunden

Werbung