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
:
Verschoben durch User
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
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.