MMA7361L sample code accels, tilt values, ZeroG detect, calibration

Dependencies:   mbed MMA7361L

Committer:
yamaguch
Date:
Mon May 20 05:25:08 2013 +0000
Revision:
2:d5bc88266d26
Parent:
0:85d3ea7e625f
rename sleep to nSleep

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yamaguch 0:85d3ea7e625f 1 #include "mbed.h"
yamaguch 0:85d3ea7e625f 2 #include "MMA7361L.h"
yamaguch 0:85d3ea7e625f 3
yamaguch 0:85d3ea7e625f 4 MMA7361L accel(p15, p16, p17, p25, p26, p24); // x, y, z, 0g, g-select, sleep
yamaguch 0:85d3ea7e625f 5
yamaguch 0:85d3ea7e625f 6 void atZeroG() {
yamaguch 0:85d3ea7e625f 7 static BusOut leds(LED1, LED2, LED3, LED4);
yamaguch 0:85d3ea7e625f 8
yamaguch 0:85d3ea7e625f 9 leds = 15;
yamaguch 0:85d3ea7e625f 10 printf("atZeroG %4.3f: %4.3f, %4.3f, %4.3f\n",
yamaguch 0:85d3ea7e625f 11 accel.getAccel(), accel.getAccelX(), accel.getAccelY(), accel.getAccelZ());
yamaguch 0:85d3ea7e625f 12 wait(1);
yamaguch 0:85d3ea7e625f 13 leds = 0;
yamaguch 0:85d3ea7e625f 14 }
yamaguch 0:85d3ea7e625f 15
yamaguch 0:85d3ea7e625f 16 inline float toDegrees(float r) {
yamaguch 0:85d3ea7e625f 17 return 180 * r / 3.14159;
yamaguch 0:85d3ea7e625f 18 }
yamaguch 0:85d3ea7e625f 19
yamaguch 0:85d3ea7e625f 20 int main() {
yamaguch 0:85d3ea7e625f 21 accel.printInfo();
yamaguch 0:85d3ea7e625f 22 accel.setZeroGDetectListener(atZeroG);
yamaguch 0:85d3ea7e625f 23 accel.setScale(MMA7361L::SCALE_1_5G);
yamaguch 0:85d3ea7e625f 24 accel.calibrate(MMA7361L::SCALE_1_5G, -1, 1, -1, 1, -1, 1);
yamaguch 0:85d3ea7e625f 25
yamaguch 0:85d3ea7e625f 26 while (true) {
yamaguch 0:85d3ea7e625f 27 printf("Accel %4.3f: %4.3f, %4.3f, %4.3f, %2.0f, %2.0f, %2.0f\n",
yamaguch 0:85d3ea7e625f 28 accel.getAccel(), accel.getAccelX(), accel.getAccelY(), accel.getAccelZ(),
yamaguch 0:85d3ea7e625f 29 toDegrees(accel.getTiltX()), toDegrees(accel.getTiltY()), toDegrees(accel.getTiltZ()));
yamaguch 0:85d3ea7e625f 30 wait(5);
yamaguch 0:85d3ea7e625f 31 }
yamaguch 0:85d3ea7e625f 32 }