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