Hello, I have a problem with Jeff Rowberg's I2C and MPU6050 libraries.
I included the libraries in arduino without worries but the problem is that when I try to compile the example MPU6050 which is given with the libraries, I have full of error messages which seem to come of the bookstores in question. I have tried several programs using these libraries and I get the same error message that appears.
Here is the error message that appears:
In file included from /Users/ando/Documents/Arduino/libraries/MPU6050/examples/MPU6050_DMP6/MPU6050_DMP6.ino:51:0:
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpGetGravity(int16_t*, const uint8_t*)':
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050_6Axis_MotionApps20.h:522:65: warning: integer overflow in expression [-Woverflow]
- (int32_t)qI[2] * qI[2] + (int32_t)qI[3] * qI[3]) / (2 * 16384);
^~~~~
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:436:7: warning: type 'struct MPU6050' violates the C++ One Definition Rule [-Wodr]
class MPU6050 {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:436:7: note: a different type is defined in another translation unit
class MPU6050 {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:1036:18: note: the first difference of corresponding definitions is field 'dmpPacketBuffer'
uint8_t *dmpPacketBuffer;
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:436:7: note: a type with different number of fields is defined in another translation unit
class MPU6050 {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:440:14: warning: 'initialize' violates the C++ One Definition Rule [-Wodr]
void initialize();
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.cpp:56:6: note: implicit this pointer type mismatch
void MPU6050::initialize() {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule
class MPU6050 {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.cpp:56:6: note: 'initialize' was previously declared here
void MPU6050::initialize() {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.cpp:56:6: note: code may be misoptimized unless -fno-strict-aliasing is used
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:441:14: warning: 'testConnection' violates the C++ One Definition Rule [-Wodr]
bool testConnection();
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.cpp:67:6: note: implicit this pointer type mismatch
bool MPU6050::testConnection() {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule
class MPU6050 {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.cpp:67:6: note: 'testConnection' was previously declared here
bool MPU6050::testConnection() {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.cpp:67:6: note: code may be misoptimized unless -fno-strict-aliasing is used
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:767:14: warning: 'setXGyroOffset' violates the C++ One Definition Rule [-Wodr]
void setXGyroOffset(int16_t offset);
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.cpp:2929:6: note: implicit this pointer type mismatch
void MPU6050::setXGyroOffset(int16_t offset) {
^
/Users/ando/Documents/Arduino/libraries/MPU6050/MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule
Le croquis utilise 17410 octets (53%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 561 octets (27%) de mémoire dynamique, ce qui laisse 1487 octets pour les variables locales. Le maximum est de 2048 octets.
If you have an idea or the solution directly, I'm interested, thank you!