Example program for FXOS8700Q sensor

Dependencies:   FXOS8700Q mbed

Fork of Hello_FXOS8700Q by Freescale

Committer:
sam_grove
Date:
Thu Jun 18 22:54:17 2015 +0000
Revision:
7:518e61df67d7
Parent:
6:02bfeec82bc1
Update example program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sam_grove 7:518e61df67d7 1 /* FXOS8700Q Example Program
sam_grove 7:518e61df67d7 2 * Copyright (c) 2014-2015 ARM Limited
sam_grove 7:518e61df67d7 3 *
sam_grove 7:518e61df67d7 4 * Licensed under the Apache License, Version 2.0 (the "License");
sam_grove 7:518e61df67d7 5 * you may not use this file except in compliance with the License.
sam_grove 7:518e61df67d7 6 * You may obtain a copy of the License at
sam_grove 7:518e61df67d7 7 *
sam_grove 7:518e61df67d7 8 * http://www.apache.org/licenses/LICENSE-2.0
sam_grove 7:518e61df67d7 9 *
sam_grove 7:518e61df67d7 10 * Unless required by applicable law or agreed to in writing, software
sam_grove 7:518e61df67d7 11 * distributed under the License is distributed on an "AS IS" BASIS,
sam_grove 7:518e61df67d7 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
sam_grove 7:518e61df67d7 13 * See the License for the specific language governing permissions and
sam_grove 7:518e61df67d7 14 * limitations under the License.
sam_grove 7:518e61df67d7 15 */
sam_grove 7:518e61df67d7 16
JimCarver 0:748fe54f0947 17 #include "mbed.h"
JimCarver 0:748fe54f0947 18 #include "FXOS8700Q.h"
JimCarver 0:748fe54f0947 19
JimCarver 0:748fe54f0947 20 Serial pc(USBTX, USBRX);
sam_grove 7:518e61df67d7 21 I2C i2c(PTE25, PTE24);
sam_grove 7:518e61df67d7 22 //FXOS8700Q fxos(i2c, FXOS8700CQ_SLAVE_ADDR1);
sam_grove 7:518e61df67d7 23 FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR1); // Configured for the FRDM-K64F with onboard sensors
sam_grove 7:518e61df67d7 24 FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR1);
sam_grove 7:518e61df67d7 25 //FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR0); // Configured for use with the FRDM-MULTI shield
sam_grove 7:518e61df67d7 26 //FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR0);
JimCarver 4:4b494ca218ff 27
JimCarver 0:748fe54f0947 28
sam_grove 7:518e61df67d7 29 int main(void)
sam_grove 7:518e61df67d7 30 {
sam_grove 7:518e61df67d7 31 motion_data_units_t acc_data, mag_data;
sam_grove 7:518e61df67d7 32 motion_data_counts_t acc_raw, mag_raw;
sam_grove 7:518e61df67d7 33 float faX, faY, faZ, fmX, fmY, fmZ, tmp_float;
sam_grove 7:518e61df67d7 34 int16_t raX, raY, raZ, rmX, rmY, rmZ, tmp_int;
sam_grove 7:518e61df67d7 35
sam_grove 7:518e61df67d7 36 acc.enable();
sam_grove 7:518e61df67d7 37 mag.enable();
sam_grove 7:518e61df67d7 38 printf("FXOS8700QAccelerometer Who Am I= %X\r\n", acc.whoAmI());
sam_grove 7:518e61df67d7 39 printf("FXOS8700QMagnetometer Who Am I= %X\r\n", acc.whoAmI());
JimCarver 0:748fe54f0947 40 while (true) {
sam_grove 7:518e61df67d7 41 // counts based results
sam_grove 7:518e61df67d7 42 acc.getAxis(acc_raw);
sam_grove 7:518e61df67d7 43 mag.getAxis(mag_raw);
sam_grove 7:518e61df67d7 44 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);
sam_grove 7:518e61df67d7 45 acc.getX(raX);
sam_grove 7:518e61df67d7 46 acc.getY(raY);
sam_grove 7:518e61df67d7 47 acc.getZ(raZ);
sam_grove 7:518e61df67d7 48 mag.getX(rmX);
sam_grove 7:518e61df67d7 49 mag.getY(rmY);
sam_grove 7:518e61df67d7 50 mag.getZ(rmZ);
sam_grove 7:518e61df67d7 51 printf("ACC: X=%06dd Y=%06dd Z=%06dd \t MAG: X=%06dd Y=%06dd Z=%06dd\r\n", raX, raY, raZ, rmX, rmY, rmZ);
sam_grove 7:518e61df67d7 52 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));
sam_grove 7:518e61df67d7 53 // unit based results
JimCarver 5:061ab9f2c002 54 acc.getAxis(acc_data);
JimCarver 5:061ab9f2c002 55 mag.getAxis(mag_data);
sam_grove 7:518e61df67d7 56 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);
sam_grove 7:518e61df67d7 57 acc.getX(faX);
sam_grove 7:518e61df67d7 58 acc.getY(faY);
sam_grove 7:518e61df67d7 59 acc.getZ(faZ);
sam_grove 7:518e61df67d7 60 mag.getX(fmX);
sam_grove 7:518e61df67d7 61 mag.getY(fmY);
sam_grove 7:518e61df67d7 62 mag.getZ(fmZ);
sam_grove 7:518e61df67d7 63 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);
sam_grove 7:518e61df67d7 64 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));
sam_grove 7:518e61df67d7 65 puts("");
sam_grove 7:518e61df67d7 66 wait(5.0f);
JimCarver 0:748fe54f0947 67 }
JimCarver 0:748fe54f0947 68 }