i2cdevlib icon indicating copy to clipboard operation
i2cdevlib copied to clipboard

Compile errors compiling MPU6050_example_1 for BCM2385

Open Xantrim opened this issue 5 years ago • 0 comments

I tried to get an MPU 6050 working on a Raspberry PI. Compiling and installing the BCM2035 library was no problem, but when I try to compile the example I get the output at the bottom of this message. The trouble seems to be that it uses MPU6050.cpp from the Arduino part of the library, which uses functions not available outside the Arduino framework.

`gcc -o MPU6050_example_1 ${PATH_I2CDEVLIB}RaspberryPi_bcm2835/MPU6050/examples/MPU6050_example_1.cpp -I ${PATH_I2CDEVLIB}RaspberryPi_bcm2835/I2Cdev ${PATH_I2CDEVLIB}RaspberryPi_bcm2835/I2Cdev/I2Cdev.cpp -I ${PATH_I2CDEVLIB}/Arduino/MPU6050/ ${PATH_I2CDEVLIB}/Arduino/MPU6050/MPU6050.cpp -l bcm2835 -l m 1>error.log 2>&1

/home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp: In member function ‘bool MPU6050::writeMemoryBlock(const uint8_t*, uint16_t, uint8_t, uint8_t, bool, bool)’: /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3057:87: error: ‘pgm_read_byte’ was not declared in this scope for (j = 0; j < chunkSize; j++) progBuffer[j] = pgm_read_byte(data + i + j); ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp: In member function ‘bool MPU6050::writeDMPConfigurationSet(const uint8_t*, uint16_t, bool)’: /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3127:44: error: ‘pgm_read_byte’ was not declared in this scope bank = pgm_read_byte(data + i++); ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3147:88: error: ‘pgm_read_byte’ was not declared in this scope for (j = 0; j < length; j++) progBuffer[j] = pgm_read_byte(data + i + j); ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3160:51: error: ‘pgm_read_byte’ was not declared in this scope special = pgm_read_byte(data + i++); ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp: In member function ‘void MPU6050::CalibrateGyro(uint8_t)’: /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3225:36: error: ‘map’ was not declared in this scope x = (100 - map(Loops, 1, 5, 20, 0)) * .01; ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp: In member function ‘void MPU6050::CalibrateAccel(uint8_t)’: /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3240:35: error: ‘map’ was not declared in this scope x = (100 - map(Loops, 1, 5, 20, 0)) * .01; ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp: In member function ‘void MPU6050::PID(uint8_t, float, float, uint8_t)’: /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3256:2: error: ‘Serial’ was not declared in this scope Serial.write('>'); ^~~~~~ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp: In member function ‘void MPU6050::PrintActiveOffsets()’: /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3314:2: error: ‘Serial’ was not declared in this scope Serial.print(F("\n// X Accel Y Accel Z Accel X Gyro Y Gyro Z Gyro\n//OFFSETS ")); ^~~~~~ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3314:100: error: ‘F’ was not declared in this scope Serial.print(F("\n// X Accel Y Accel Z Accel X Gyro Y Gyro Z Gyro\n//OFFSETS ")); ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3308:197: error: ‘dtostrf’ was not declared in this scope #define printfloatx(Name,Variable,Spaces,Precision,EndTxt) { Serial.print(F(Name)); {char S[(Spaces + Precision + 3)];Serial.print(F(" ")); Serial.print(dtostrf((float)Variable,Spaces,Precision ,S));}Serial.print(F(EndTxt)); }//Name,Variable,Spaces,Precision,EndTxt ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3322:2: note: in expansion of macro ‘printfloatx’ printfloatx("", Data[0], 5, 0, ", "); ^~~~~~~~~~~ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3308:197: error: ‘dtostrf’ was not declared in this scope #define printfloatx(Name,Variable,Spaces,Precision,EndTxt) { Serial.print(F(Name)); {char S[(Spaces + Precision + 3)];Serial.print(F(" ")); Serial.print(dtostrf((float)Variable,Spaces,Precision ,S));}Serial.print(F(EndTxt)); }//Name,Variable,Spaces,Precision,EndTxt ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3323:2: note: in expansion of macro ‘printfloatx’ printfloatx("", Data[1], 5, 0, ", "); ^~~~~~~~~~~ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3308:197: error: ‘dtostrf’ was not declared in this scope #define printfloatx(Name,Variable,Spaces,Precision,EndTxt) { Serial.print(F(Name)); {char S[(Spaces + Precision + 3)];Serial.print(F(" ")); Serial.print(dtostrf((float)Variable,Spaces,Precision ,S));}Serial.print(F(EndTxt)); }//Name,Variable,Spaces,Precision,EndTxt ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3324:2: note: in expansion of macro ‘printfloatx’ printfloatx("", Data[2], 5, 0, ", "); ^~~~~~~~~~~ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3308:197: error: ‘dtostrf’ was not declared in this scope #define printfloatx(Name,Variable,Spaces,Precision,EndTxt) { Serial.print(F(Name)); {char S[(Spaces + Precision + 3)];Serial.print(F(" ")); Serial.print(dtostrf((float)Variable,Spaces,Precision ,S));}Serial.print(F(EndTxt)); }//Name,Variable,Spaces,Precision,EndTxt ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3327:2: note: in expansion of macro ‘printfloatx’ printfloatx("", Data[0], 5, 0, ", "); ^~~~~~~~~~~ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3308:197: error: ‘dtostrf’ was not declared in this scope #define printfloatx(Name,Variable,Spaces,Precision,EndTxt) { Serial.print(F(Name)); {char S[(Spaces + Precision + 3)];Serial.print(F(" ")); Serial.print(dtostrf((float)Variable,Spaces,Precision ,S));}Serial.print(F(EndTxt)); }//Name,Variable,Spaces,Precision,EndTxt ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3328:2: note: in expansion of macro ‘printfloatx’ printfloatx("", Data[1], 5, 0, ", "); ^~~~~~~~~~~ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3308:197: error: ‘dtostrf’ was not declared in this scope #define printfloatx(Name,Variable,Spaces,Precision,EndTxt) { Serial.print(F(Name)); {char S[(Spaces + Precision + 3)];Serial.print(F(" ")); Serial.print(dtostrf((float)Variable,Spaces,Precision ,S));}Serial.print(F(EndTxt)); }//Name,Variable,Spaces,Precision,EndTxt ^ /home/pi/src/i2cdevlib//Arduino/MPU6050/MPU6050.cpp:3329:2: note: in expansion of macro ‘printfloatx’ printfloatx("", Data[2], 5, 0, "\n"); ^~~~~~~~~~~`

Xantrim avatar Jan 02 '20 19:01 Xantrim