MPU9150 in Projekt-Klasse

OP #3820566
Lesenswert?
• ▲
▼
Hallo zusammen,
in einem Projekt benutze ich die Lib "MPU6050". Alles funktioniert gut.
Das MPU-Setup läuft aber in der Haupt (ino) Datei. Die MPU-Daten werden 
auch aus der loop heraus gelesen. (Siehe MPU6050 example).
Nun möchte ich aber die MPU6050-Lib in einer eigenen Projektklasse 
verwenden.

z.B.
void IMUClass::init()
{
    Serial.println(F("Initializing I2C devices..."));
    mpu.initialize();
etc.
void IMUClass::readMPU()
{
    mpuInterrupt = false;
    mpuIntStatus = mpu.getIntStatus();
    fifoCount = mpu.getFIFOCount();
eingebaut etc.

Wenn ich alle Deklationen in Initialisierungen in meiner Klasse 
eingebaut habe, kommt diese Meldung:

Compiling 'MPU9150_Test' for 'Arduino Mega 2560 or Mega ADK'
MPU9159Class.cpp.o:In function `MPU6050::dmpGetAccel(long*, unsigned 
char const*)'
MPU6050_9Axis_MotionApps41.h:dmpGetAccel(long*, unsigned char const*)'
MPU9150_Test.cpp.o:\MPU6050_9Axis_MotionApps41.h:636: first defined here
ld.exe:Disabling relaxation: it will not work with multiple definitions
usw.

Ich verstehe, was der Compiler meint, aber wie stelle ich den Fehler ab?

Die Libs
#include "MPU6050_9Axis_MotionApps41.h"
#include "helper_3dmath.h"
#include "I2Cdev.h"
liegen im Projektverzeichnins. Ich arbeite mit VS+Visualmicro.

Es wäre schön, wenn ich hier ein Lösung finden könnte. Ich versuche das 
schon sehr sehr lange.

Gruß
Willi
OP #3825320
Lesenswert?
• ▲
▼
Hallo zusammen,
hat wirklich keiner einen Lösungsvorschlag? Soll ich den Testcode mal 
anhängen? Das seltsame ist ja, dass dies nur mit dieser speziellen Lib 
nicht funktioniert. Andere, wie z.B. PIDv1, BMP085, kein Problem.

Bin wirklich auf Eure Hilfe angewiesen, auch wenn die Frage banal sein 
sollte.

Gruß Willi
OP #3844737
Lesenswert?
• ▲
▼
Es scheint tatsächlich an der Lib zu liegen. Insbesondere dann, wenn man 
die 6- bzw. 9 Achsenversion einbindet. Warum das so ist, kann ich nicht 
sagen. Der Compliler glaubt aber, das Teile der Lib mehrfach includiert 
werden. Ich bin dann auf die MPU9150lib gestoßen, und damit ist MEIN 
Problem gelöst. Was mich aber wundert ist, dass scheinbar nur ich das 
Problem habe.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.