Example program for FRDM boards with a Freescale MMA8451Q accelerometer

Dependencies:   MMA8451Q mbed

Fork of FRDM_MMA8451Q by Freescale

Files at this revision

API Documentation at this revision

Comitter:
sam_grove
Date:
Fri Feb 21 15:33:38 2014 +0000
Parent:
7:70775be9f474
Child:
9:d4bffe27a7bf
Commit message:
Added support for FRDM-KL05Z, FRDM-KL25Z and FRDM-KL46Z

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Tue Feb 19 23:46:45 2013 +0000
+++ b/main.cpp	Fri Feb 21 15:33:38 2014 +0000
@@ -1,18 +1,32 @@
 #include "mbed.h"
 #include "MMA8451Q.h"
 
+#if   defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
+  PinName const SDA = PTE25;
+  PinName const SCL = PTE24;
+#elif defined (TARGET_KL05Z)
+  PinName const SDA = PTB4;
+  PinName const SCL = PTB3;
+#else
+  #error TARGET NOT DEFINED
+#endif
+
 #define MMA8451_I2C_ADDRESS (0x1d<<1)
 
 int main(void) {
-    MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
-    PwmOut rled(LED_RED);
-    PwmOut gled(LED_GREEN);
-    PwmOut bled(LED_BLUE);
+    MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
+    PwmOut rled(LED1);
+    PwmOut gled(LED2);
+    PwmOut bled(LED3);
+    
+    printf("MMA8451 ID: %d\n", acc.getWhoAmI());
 
     while (true) {
-        rled = 1.0 - abs(acc.getAccX());
-        gled = 1.0 - abs(acc.getAccY());
-        bled = 1.0 - abs(acc.getAccZ());
+        float x, y, z;
+        x = rled = 1.0 - abs(acc.getAccX());
+        y = gled = 1.0 - abs(acc.getAccY());
+        z = bled = 1.0 - abs(acc.getAccZ());
         wait(0.1);
+        printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n", x, y, z);
     }
 }
--- a/mbed.bld	Tue Feb 19 23:46:45 2013 +0000
+++ b/mbed.bld	Fri Feb 21 15:33:38 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/3d0ef94e36ec
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/8e73be2a2ac1
\ No newline at end of file