Playing around with accelerometer and magnetometer on mbed KL46Z

Dependencies:   MAG3110 MMA8451Q PinDetect mbed TSI

Revision:
0:648dde0c4ef8
Child:
2:bb31f097af0f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Feb 02 22:07:05 2014 +0000
@@ -0,0 +1,77 @@
+#include "mbed.h"
+#include "PinDetect.h"
+#include "MMA8451Q.h"
+#include "MAG3110.h"
+
+#define MMA8451_I2C_ADDRESS (0x1d<<1)
+
+// Declare output LEDs
+DigitalOut ledgreen(PTD5);
+DigitalOut ledred(PTE29);
+
+// Declare USB serial connection
+Serial pc(USBTX,USBRX);
+
+// Declare timer interrupt
+Ticker timerAcc;
+Ticker timerMag;
+
+// Declare pointer variables
+float xAcc;
+float yAcc;
+float zAcc;
+int xMag;
+int yMag;
+int zMag;
+
+// Declare Accelerometer pins and I2C address
+MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS, 0, 0);
+// Declare Magnetometer pins
+MAG3110 mag(PTE25, PTE24);
+
+// Functions
+void init();
+void accTime();
+void magTime();
+
+void init()
+{
+    // Attach timerAcc
+    timerAcc.attach(&accTime, 0.5);
+    timerMag.attach(&magTime, 0.75);
+    ledred = 0; 
+    ledgreen = 0;   
+}
+
+int main() 
+{
+    // Initialize
+    init();
+
+    while(1)
+    {
+        // Read and print data from accelerometer
+        pc.puts("Accelerometer Data:\r\n");
+        pc.printf("X: %f, Y: %f, Z: %f\r\n", xAcc, yAcc, zAcc);
+        // Read data from magnetometer
+        pc.puts("Magnetometer Data:\r\n");
+        pc.printf("X: %d, Y: %d, Z: %d\r\n", xMag, yMag, zMag);
+        wait(0.5);
+    }
+}
+
+void accTime() 
+{
+    xAcc = abs(acc.getAccX());
+    yAcc = abs(acc.getAccY());
+    zAcc = abs(acc.getAccZ());
+    ledgreen = !ledgreen;
+}
+
+void magTime()
+{
+    xMag = mag.getXVal();
+    yMag = mag.getYVal();
+    zMag = mag.getZVal();
+    ledred = !ledred;
+}
\ No newline at end of file