-
Notifications
You must be signed in to change notification settings - Fork 822
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MPU6050 i2c example expanded into library #504
base: develop
Are you sure you want to change the base?
Conversation
Reorganized so i2c code is in register reading and writing functions. Rewrote power functions for reset and power options. Added mpu6050 scale set functions and local scaling functions. Tested connecting, reading data and changing scale, all working.
The new files wrap the mpu6050_i2c.c functions in a cpp class. New read function includes scale. Also split separate accel, gyro, and temp scale functions. NOT tested.
Tested cpp code works to read mpu. main() renamed test() so I can call it in other code.
the code that's been running with simplewalker. Also add self-test even though idk what it does.
Thanks. I have a so far untested MPU6050, I'll give it a go. |
Presumably this also fixes / supersedes the issues identified with the current example code? https://github.com/raspberrypi/pico-examples/issues?q=is%3Aopen+MPU6050 |
@lurch , |
add scale_test executable demonstrating C++lib and scaling, create enum MPU6050::Scale, C++ set bus_addr, remove #include stdlib.h from headers
I've pushed some changes to improve it, including adding a test that demonstrates scaling with the C++ library. Unfortunately, my pico has stopped working, so I can't test it myself. |
fixed my pico, then fixed the code. |
@peterharperuk thanks for waiting, I've marked this PR as ready. I'm still unsure of the best way to integrate this into the repo. Should I wrap the C++ section to check for compilers without C++? |
I refactored and expanded the mpu6050_i2c example. This adds new functions for MPU6050 features and clarifies existing ones. It also refactors the example into an MPU6050_i2c library and main.c. There are C and C++ versions of the library. I've been using the C++ library in another project for around a year.
I realize that this is a pretty drastic change, and moves the code away from its original intent as a pico code example. I plan on separating this into a dedicated mpu6050_i2c pico library. However, some of these changes could be useful for the pico-examples repo. Some possibilities are:
I'm happy to include any suggestions you have.