A test program for the MMA8452 accelerometer

Dependencies:   MMA8452 mbed

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.

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) {