Ravkiran Ramanath / Mbed 2 deprecated AxisData

Dependencies:   FXOS8700Q mbed

Files at this revision

API Documentation at this revision

Comitter:
ravirkiran
Date:
Sun Sep 13 13:35:22 2015 +0000
Commit message:
Sample program to get axis data.

Changed in this revision

FXOS8700Q.lib Show annotated file Show diff for this revision Revisions of this file
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
diff -r 000000000000 -r 46801a23103e FXOS8700Q.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FXOS8700Q.lib	Sun Sep 13 13:35:22 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/Freescale/code/FXOS8700Q/#aee7dea904e2
diff -r 000000000000 -r 46801a23103e main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Sep 13 13:35:22 2015 +0000
@@ -0,0 +1,177 @@
+/* FXOS8700Q Example Program
+ * Copyright (c) 2014-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed.h"
+#include "FXOS8700Q.h"
+
+Serial pc(USBTX, USBRX);
+DigitalOut led_red(LED_RED);
+DigitalOut led_green(LED_GREEN);
+DigitalIn sw2(SW2);
+DigitalIn sw3(SW3);
+
+Ticker tick;
+Timer t;
+I2C i2c(PTE25, PTE24);
+//FXOS8700Q fxos(i2c, FXOS8700CQ_SLAVE_ADDR1);
+FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR1);    // Configured for the FRDM-K64F with onboard sensors
+FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR1);
+//FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR0);    // Configured for use with the FRDM-MULTI shield
+//FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR0);
+
+static char sw2_debounce = 0;
+static char sw3_debounce = 0;
+static char sysEnable = 0;
+
+void check_sw2(void)
+{
+    if (sw2 == 0) {
+        sw2_debounce = 1;
+        }
+    else if((sw2_debounce == 1)&&(sw2 == 1))
+    {
+        sw2_debounce = 0;
+        sysEnable = 1;
+        pc.printf("SW2 button pressed SYSTEM : Enable. \n");
+        led_red = 1;
+        led_green = 0;
+        
+        acc.enable();
+        mag.enable();
+        pc.printf("FXOS8700QAccelerometer Who Am I= %X\r\n", acc.whoAmI());
+        pc.printf("FXOS8700QMagnetometer Who Am I= %X\r\n", acc.whoAmI());
+    }
+}
+
+void check_sw3(void)
+{
+    if (sw3 == 0) {
+        sw3_debounce = 1;
+        }
+    else if((sw3_debounce == 1)&&(sw3 == 1))
+    {
+        sw3_debounce = 0;
+        sysEnable = 0;
+        pc.printf("SW3 button pressed SYSTEM : Disable. \n");
+        led_red = 0;
+        led_green = 0;
+        
+        acc.disable();
+        mag.disable();
+        pc.printf("FXOS8700QAccelerometer Who Am I= %X\r\n", acc.whoAmI());
+        pc.printf("FXOS8700QMagnetometer Who Am I= %X\r\n", acc.whoAmI());
+
+    }
+}
+
+
+motion_data_units_t motion_Data(void)
+{
+    motion_data_units_t acc_data, mag_data;
+    motion_data_counts_t acc_raw, mag_raw;
+    float faX, faY, faZ, fmX, fmY, fmZ, tmp_float;
+    int16_t raX, raY, raZ, rmX, rmY, rmZ, tmp_int;
+
+    //while (true) {
+        // counts based results
+        acc.getAxis(acc_raw);
+        mag.getAxis(mag_raw);
+        pc.printf("ACC: X=%06dd Y=%06dd Z=%06dd \t MAG: X=%06dd Y=%06dd Z=%06dd\r\n", acc_raw.x, acc_raw.y, acc_raw.z, mag_raw.x, mag_raw.y, mag_raw.z);
+        acc.getX(raX);
+        acc.getY(raY);
+        acc.getZ(raZ);
+        mag.getX(rmX);
+        mag.getY(rmY);
+        mag.getZ(rmZ);
+        pc.printf("ACC: X=%06dd Y=%06dd Z=%06dd \t MAG: X=%06dd Y=%06dd Z=%06dd\r\n", raX, raY, raZ, rmX, rmY, rmZ);
+        pc.printf("ACC: X=%06dd Y=%06dd Z=%06dd \t MAG: X=%06dd Y=%06dd Z=%06dd\r\n", acc.getX(tmp_int), acc.getY(tmp_int), acc.getZ(tmp_int), mag.getX(tmp_int), mag.getY(tmp_int), mag.getZ(tmp_int));
+        // unit based results
+        acc.getAxis(acc_data);
+        mag.getAxis(mag_data);
+        pc.printf("ACC: X=%1.4ff Y=%1.4ff Z=%1.4ff \t MAG: X=%4.1ff Y=%4.1ff Z=%4.1ff\r\n", acc_data.x, acc_data.y, acc_data.z, mag_data.x, mag_data.y, mag_data.z);
+        acc.getX(faX);
+        acc.getY(faY);
+        acc.getZ(faZ);
+        mag.getX(fmX);
+        mag.getY(fmY);
+        mag.getZ(fmZ);
+        pc.printf("ACC: X=%1.4ff Y=%1.4ff Z=%1.4ff \t MAG: X=%4.1ff Y=%4.1ff Z=%4.1ff\r\n", faX, faY, faZ, fmX, fmY, fmZ);
+        pc.printf("ACC: X=%1.4ff Y=%1.4ff Z=%1.4ff \t MAG: X=%4.1ff Y=%4.1ff Z=%4.1ff\r\n", acc.getX(tmp_float), acc.getY(tmp_float), acc.getZ(tmp_float), mag.getX(tmp_float), mag.getY(tmp_float), mag.getZ(tmp_float));
+        //wait(5.0f);
+        
+        return(acc_data);
+    //}
+}
+static float lastmotiondetect;
+void flip()
+{
+    float currenttime = t.read();
+    float timeDiff = lastmotiondetect - currenttime;
+    if(timeDiff > 1.0)
+    {
+        led_red = 1;
+        led_green = 0;
+        }
+}
+
+void blink_GreenLED()
+{
+        led_red = 0;
+        led_green = 1;
+        wait(0.1);
+        led_red = 0;
+        led_green = 0;
+    }
+
+int checkData(motion_data_units_t cur, motion_data_units_t prev)
+{
+    if((cur.x == prev.x)  ||(cur.y == prev.y) ||(cur.z == prev.z))
+    {
+        return 0;
+        }
+        else 
+        {
+            blink_GreenLED();
+            return 1;
+            }
+    }
+int main(void)
+{
+    char motiondetect;
+    pc.baud(115200);
+    pc.printf("Hello from FRDM-K64F board.\n");
+    tick.attach(&flip, 1.0); 
+    t.start();
+    static motion_data_units_t currentData, previousData;
+    
+    while(1)
+    {
+        check_sw2();
+        check_sw3();
+        if(sysEnable == 1)
+        {
+            currentData = motion_Data();
+            motiondetect = checkData(currentData, previousData);
+            if(motiondetect == 1)
+            {
+                lastmotiondetect = t.read();
+                }
+            //wait(0.2);
+        }
+    }
+        
+    
+}
\ No newline at end of file
diff -r 000000000000 -r 46801a23103e mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sun Sep 13 13:35:22 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/ba1f97679dad
\ No newline at end of file