Ошибка компиляции после подключение библиотеки MPU6050

ChumBacket
Offline
Зарегистрирован: 21.04.2022

Использую Visual Studio - Platformio

Хочу повторить проект из этого источника : https://habr.com/ru/post/575662/

После того как я скачал исходники, была проблема с библиотеками. В плане того, что их не было в проекте. После установки пачки библиотек из этого репозитория (https://github.com/pkourany/I2CDEV_MPU6050?utm_source=platformio&utm_med...)

Выходит такая ошибка 

In file included from src\main.cpp:4:0:
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpInitialize()':
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:504:21: warning: variable 'mpuIntStatus' set but not used [-Wunused-but-set-variable]
             uint8_t mpuIntStatus = getIntStatus();
                     ^~~~~~~~~~~~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:354:13: warning: unused variable 'hwRevision' [-Wunused-variable]
     uint8_t hwRevision = readMemoryByte();
             ^~~~~~~~~~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:362:13: warning: unused variable 'otpValid' [-Wunused-variable]
     uint8_t otpValid = getOTPBankValid();
             ^~~~~~~~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpGetAccel(int32_t*, const uint8_t*)':
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:587:31: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[0] = ((packet[28] << 24) + (packet[29] << 16) + (packet[30] << 8) + packet[31]);
                               ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:587:52: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[0] = ((packet[28] << 24) + (packet[29] << 16) + (packet[30] << 8) + packet[31]);
                                                    ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:588:31: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[1] = ((packet[32] << 24) + (packet[33] << 16) + (packet[34] << 8) + packet[35]);
                               ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:588:52: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[1] = ((packet[32] << 24) + (packet[33] << 16) + (packet[34] << 8) + packet[35]);
                                                    ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:589:31: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[2] = ((packet[36] << 24) + (packet[37] << 16) + (packet[38] << 8) + packet[39]);
                               ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:589:52: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[2] = ((packet[36] << 24) + (packet[37] << 16) + (packet[38] << 8) + packet[39]);
                                                    ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpGetQuaternion(int32_t*, const uint8_t*)':
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:611:30: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[0] = ((packet[0] << 24) + (packet[1] << 16) + (packet[2] << 8) + packet[3]);
                              ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:611:50: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[0] = ((packet[0] << 24) + (packet[1] << 16) + (packet[2] << 8) + packet[3]);
                                                  ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:612:30: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[1] = ((packet[4] << 24) + (packet[5] << 16) + (packet[6] << 8) + packet[7]);
                              ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:612:50: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[1] = ((packet[4] << 24) + (packet[5] << 16) + (packet[6] << 8) + packet[7]);
                                                  ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:613:30: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[2] = ((packet[8] << 24) + (packet[9] << 16) + (packet[10] << 8) + packet[11]);
                              ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:613:50: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[2] = ((packet[8] << 24) + (packet[9] << 16) + (packet[10] << 8) + packet[11]);
                                                  ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:614:31: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[3] = ((packet[12] << 24) + (packet[13] << 16) + (packet[14] << 8) + packet[15]);
                               ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:614:52: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[3] = ((packet[12] << 24) + (packet[13] << 16) + (packet[14] << 8) + packet[15]);
                                                    ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpGetGyro(int32_t*, const uint8_t*)': 
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:644:31: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[0] = ((packet[16] << 24) + (packet[17] << 16) + (packet[18] << 8) + packet[19]);
                               ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:644:52: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[0] = ((packet[16] << 24) + (packet[17] << 16) + (packet[18] << 8) + packet[19]);
                                                    ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:645:31: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[1] = ((packet[20] << 24) + (packet[21] << 16) + (packet[22] << 8) + packet[23]);
                               ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:645:52: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[1] = ((packet[20] << 24) + (packet[21] << 16) + (packet[22] << 8) + packet[23]);
                                                    ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:646:31: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[2] = ((packet[24] << 24) + (packet[25] << 16) + (packet[26] << 8) + packet[27]);
                               ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:646:52: warning: left shift count >= width of type [-Wshift-count-overflow]
     data[2] = ((packet[24] << 24) + (packet[25] << 16) + (packet[26] << 8) + packet[27]);
                                                    ^~
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpReadAndProcessFIFOPacket(uint8_t, uint8_t*)':
.pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:738:29: warning: value computed is not used [-Wunused-value]
         if (processed != 0) *processed++;
                             ^~~~~~~~~~~~
src\main.cpp: At global scope:
src\main.cpp:78:44: warning: large integer implicitly truncated to unsigned type [-Woverflow]
 volatile unsigned long ticksPerPulseLeft = UINT64_MAX;
                                            ^~~~~~~~~~
src\main.cpp:79:45: warning: large integer implicitly truncated to unsigned type [-Woverflow]
 volatile unsigned long ticksPerPulseRight = UINT64_MAX;
                                             ^~~~~~~~~~
src\main.cpp: In function 'bool mpuUpdate()':
src\main.cpp:170:27: error: 'class MPU6050' has no member named 'dmpGetCurrentFIFOPacket'; did you mean 'dmpProcessFIFOPacket'?
   if (mpuInterrupt && mpu.dmpGetCurrentFIFOPacket(fifoBuffer)) {
                           ^~~~~~~~~~~~~~~~~~~~~~~
                           dmpProcessFIFOPacket
src\main.cpp: In function 'long unsigned int getTicksPerPulse(float)':
src\main.cpp:183:12: warning: large integer implicitly truncated to unsigned type [-Woverflow]
     return UINT64_MAX;
            ^~~~~~~~~~
*** [.pio\build\nanoatmega328\src\main.cpp.o] Error 1
В ошибках пишет: класс "MPU6050" не содержит члена "dmpGetCurrentFIFOPacket"

 

ChumBacket
Offline
Зарегистрирован: 21.04.2022

Вывод ошибок из Visual Code

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

не, не повторишь.  начни со светлодиодика. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Видимо, не та библиотека. Их много с одинаковыми названиями.

А вообще, согласен с #2 - Вы через ступеньки прыгаете.

olzhik
Offline
Зарегистрирован: 27.07.2022

у меня такая же проблема

Скажите как вы эту проблему решили

 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Надо искать ту версию  библиотеки, которую использовал автор ...

b707
Offline
Зарегистрирован: 26.05.2017

я не знаю, откуда ТС взял эту либу, что он компилирует

pio\libdeps\nanoatmega328\MPU6050\src/MPU6050_6Axis_MotionApps20.h:587:31: warning: left shift count >= width of type [-Wshift-count-overflow]  
     data[0] = ((packet[28] << 24) + (packet[29] << 16) + (packet[30] << 8) + packet[31]);

в библиотеке по его же ссылке эта строчка выглядит так:

data[0] = (((uint32_t)packet[28] << 24) | ((uint32_t)packet[29] << 16) | ((uint32_t)packet[30] << 8) | packet[31]);

почувствуйте, что называется, разницу...