jeroendoggen / Arduino-MMA7361-library

Arduino library for the MMA7361 3-axis MEMS accelerometer
16 stars 24 forks source link

Error compiling with Arduino DUE #10

Open jeroendoggen opened 9 years ago

jeroendoggen commented 9 years ago

From rodrigo....@gmail.com on December 02, 2014 01:37:38

Only with arduino DUE: (selecting other board its ok)

C:\Users\Rodrigo\Documents\Arduino\libraries\AcceleroMMA7361\AcceleroMMA7361.cpp: In member function 'void AcceleroMMA7361::setARefVoltage(double)': C:\Users\Rodrigo\Documents\Arduino\libraries\AcceleroMMA7361\AcceleroMMA7361.cpp:98:29: error: invalid conversion from 'int' to 'eAnalogReference {aka _eAnalogReference}' [-fpermissive] analogReference(EXTERNAL); ^ In file included from C:\Program Files (x86)\Arduino\hardware\arduino\sam\cores\arduino/Arduino.h:193:0, from C:\Users\Rodrigo\Documents\Arduino\libraries\AcceleroMMA7361\AcceleroMMA7361.h:46, from C:\Users\Rodrigo\Documents\Arduino\libraries\AcceleroMMA7361\AcceleroMMA7361.cpp:22: C:\Program Files (x86)\Arduino\hardware\arduino\sam\cores\arduino/wiring_analog.h:40:13: error: initializing argument 1 of 'void analogReference(eAnalogReference)' [-fpermissive] extern void analogReference( eAnalogReference ulMode ) ; ^ C:\Users\Rodrigo\Documents\Arduino\libraries\AcceleroMMA7361\AcceleroMMA7361.cpp: In member function 'int AcceleroMMA7361::getTotalVector()': C:\Users\Rodrigo\Documents\Arduino\libraries\AcceleroMMA7361\AcceleroMMA7361.cpp:355:45: error: 'square' was not declared in this scope return sqrt(square(_mapMMA7361G(getXRaw())) + square(_mapMMA7361G(getYRaw())) + square(_mapMMA7361G(getZRaw())));

Original issue: http://code.google.com/p/mma7361-library/issues/detail?id=10

gbvila commented 4 years ago

Hi jeroendoggen, how are you? I know your post was a long time ago, but I have the same problem. I would like to know what to do to solve this problem. If you can help me, I would be very grateful. Thank you so much.

jeroendoggen commented 4 years ago

When this code was written (~9 years ago), there was no such thing as an Arduino Due.

The square function is declared in the AVR math.h library. I suppose the Arduino toolchain imported this header from avr-libc when compiling for AVR8 controllers. (https://www.arduino.cc/en/Reference/MathHeader)

It seems that this Arduino function has since been replaced by the "sq()" function. https://www.arduino.cc/reference/en/language/functions/math/sq/

Could you verify this on your hardware and send me a pull request if this works?

gbvila commented 4 years ago

Thank you very much, Joeren. Your help was essential, problem solved.