A test program for the MMA8452 accelerometer
The test program runs a bunch of tests for the MMA8452 accelerometer.
What is below is not the test program, but an example to whet your appetite about the library.
#include "mbed.h" #include "MMA8452.h" int main() { Serial pc(USBTX,USBRX); pc.baud(115200); double x = 0, y = 0, z = 0; MMA8452 acc(p28, p27, 40000); acc.setBitDepth(MMA8452::BIT_DEPTH_12); acc.setDynamicRange(MMA8452::DYNAMIC_RANGE_4G); acc.setDataRate(MMA8452::RATE_100); while(1) { if(!acc.isXYZReady()) { wait(0.01); continue; } acc.readXYZGravity(&x,&y,&z); pc.printf("Gravities: %lf %lf %lf\r\n",x,y,z); } }
An easy way to test that this actually works is to run the loop above and hold the MMA8452 parallel to the ground along the respective axis (and upsidedown in each axis). You will see 1G on the respective axis and 0G on the others.
Diff: main.cpp
- Revision:
- 3:2a8e59a590db
- Parent:
- 2:0630128bdb32
- Child:
- 5:756f9b157319
diff -r 0630128bdb32 -r 2a8e59a590db main.cpp --- a/main.cpp Wed Mar 05 15:36:30 2014 +0000 +++ b/main.cpp Wed Mar 05 16:48:41 2014 +0000 @@ -233,8 +233,6 @@ } int twosCompTest() { - u16d((int16_t)5); - u16d((int16_t)-5); // 12 bits of number gives 2048 steps int16_t i = -2047; while(1) {