Example program for FRDM boards with a Freescale MMA8451Q accelerometer

Dependencies:   MMA8451Q mbed

Fork of FRDM_MMA8451Q by Freescale

Committer:
sam_grove
Date:
Wed Jul 16 10:30:54 2014 +0000
Revision:
9:d4bffe27a7bf
Parent:
8:d797bfa9f76e
update example x,y,z printed values, formatting and mbed library. Add support for FRDM-K20D50M

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chris 2:41db78380a6e 1 #include "mbed.h"
chris 2:41db78380a6e 2 #include "MMA8451Q.h"
chris 2:41db78380a6e 3
sam_grove 8:d797bfa9f76e 4 #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
sam_grove 8:d797bfa9f76e 5 PinName const SDA = PTE25;
sam_grove 8:d797bfa9f76e 6 PinName const SCL = PTE24;
sam_grove 8:d797bfa9f76e 7 #elif defined (TARGET_KL05Z)
sam_grove 8:d797bfa9f76e 8 PinName const SDA = PTB4;
sam_grove 8:d797bfa9f76e 9 PinName const SCL = PTB3;
sam_grove 9:d4bffe27a7bf 10 #elif defined (TARGET_K20D50M)
sam_grove 9:d4bffe27a7bf 11 PinName const SDA = PTB1;
sam_grove 9:d4bffe27a7bf 12 PinName const SCL = PTB0;
sam_grove 8:d797bfa9f76e 13 #else
sam_grove 8:d797bfa9f76e 14 #error TARGET NOT DEFINED
sam_grove 8:d797bfa9f76e 15 #endif
sam_grove 8:d797bfa9f76e 16
chris 2:41db78380a6e 17 #define MMA8451_I2C_ADDRESS (0x1d<<1)
chris 2:41db78380a6e 18
sam_grove 9:d4bffe27a7bf 19 int main(void)
sam_grove 9:d4bffe27a7bf 20 {
sam_grove 8:d797bfa9f76e 21 MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
sam_grove 8:d797bfa9f76e 22 PwmOut rled(LED1);
sam_grove 8:d797bfa9f76e 23 PwmOut gled(LED2);
sam_grove 8:d797bfa9f76e 24 PwmOut bled(LED3);
sam_grove 9:d4bffe27a7bf 25
sam_grove 8:d797bfa9f76e 26 printf("MMA8451 ID: %d\n", acc.getWhoAmI());
chris 4:367de1084ea9 27
emilmont 5:bf5becf7469c 28 while (true) {
sam_grove 8:d797bfa9f76e 29 float x, y, z;
sam_grove 9:d4bffe27a7bf 30 x = abs(acc.getAccX());
sam_grove 9:d4bffe27a7bf 31 y = abs(acc.getAccY());
sam_grove 9:d4bffe27a7bf 32 z = abs(acc.getAccZ());
sam_grove 9:d4bffe27a7bf 33 rled = 1.0f - x;
sam_grove 9:d4bffe27a7bf 34 gled = 1.0f - y;
sam_grove 9:d4bffe27a7bf 35 bled = 1.0f - z;
sam_grove 9:d4bffe27a7bf 36 wait(0.1f);
sam_grove 8:d797bfa9f76e 37 printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n", x, y, z);
chris 2:41db78380a6e 38 }
chris 2:41db78380a6e 39 }