Support KW41Z

Dependencies:   mbed FXOS8700Q

Committer:
rzrfreefr
Date:
Thu Sep 10 22:20:24 2020 +0000
Revision:
8:8f672593a068
Parent:
7:518e61df67d7
Support KW41Z Pinout

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);
rzrfreefr 8:8f672593a068 21
rzrfreefr 8:8f672593a068 22 #ifdef TARGET_KW41Z
rzrfreefr 8:8f672593a068 23 I2C i2c(PTC3, PTC2);
rzrfreefr 8:8f672593a068 24 #else
sam_grove 7:518e61df67d7 25 I2C i2c(PTE25, PTE24);
rzrfreefr 8:8f672593a068 26 #endif
rzrfreefr 8:8f672593a068 27
sam_grove 7:518e61df67d7 28 //FXOS8700Q fxos(i2c, FXOS8700CQ_SLAVE_ADDR1);
sam_grove 7:518e61df67d7 29 FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR1); // Configured for the FRDM-K64F with onboard sensors
sam_grove 7:518e61df67d7 30 FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR1);
sam_grove 7:518e61df67d7 31 //FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR0); // Configured for use with the FRDM-MULTI shield
sam_grove 7:518e61df67d7 32 //FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR0);
JimCarver 4:4b494ca218ff 33
JimCarver 0:748fe54f0947 34
sam_grove 7:518e61df67d7 35 int main(void)
sam_grove 7:518e61df67d7 36 {
sam_grove 7:518e61df67d7 37 motion_data_units_t acc_data, mag_data;
sam_grove 7:518e61df67d7 38 motion_data_counts_t acc_raw, mag_raw;
sam_grove 7:518e61df67d7 39 float faX, faY, faZ, fmX, fmY, fmZ, tmp_float;
sam_grove 7:518e61df67d7 40 int16_t raX, raY, raZ, rmX, rmY, rmZ, tmp_int;
sam_grove 7:518e61df67d7 41
sam_grove 7:518e61df67d7 42 acc.enable();
sam_grove 7:518e61df67d7 43 mag.enable();
sam_grove 7:518e61df67d7 44 printf("FXOS8700QAccelerometer Who Am I= %X\r\n", acc.whoAmI());
sam_grove 7:518e61df67d7 45 printf("FXOS8700QMagnetometer Who Am I= %X\r\n", acc.whoAmI());
JimCarver 0:748fe54f0947 46 while (true) {
sam_grove 7:518e61df67d7 47 // counts based results
sam_grove 7:518e61df67d7 48 acc.getAxis(acc_raw);
sam_grove 7:518e61df67d7 49 mag.getAxis(mag_raw);
sam_grove 7:518e61df67d7 50 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 51 acc.getX(raX);
sam_grove 7:518e61df67d7 52 acc.getY(raY);
sam_grove 7:518e61df67d7 53 acc.getZ(raZ);
sam_grove 7:518e61df67d7 54 mag.getX(rmX);
sam_grove 7:518e61df67d7 55 mag.getY(rmY);
sam_grove 7:518e61df67d7 56 mag.getZ(rmZ);
sam_grove 7:518e61df67d7 57 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 58 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 59 // unit based results
JimCarver 5:061ab9f2c002 60 acc.getAxis(acc_data);
JimCarver 5:061ab9f2c002 61 mag.getAxis(mag_data);
sam_grove 7:518e61df67d7 62 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 63 acc.getX(faX);
sam_grove 7:518e61df67d7 64 acc.getY(faY);
sam_grove 7:518e61df67d7 65 acc.getZ(faZ);
sam_grove 7:518e61df67d7 66 mag.getX(fmX);
sam_grove 7:518e61df67d7 67 mag.getY(fmY);
sam_grove 7:518e61df67d7 68 mag.getZ(fmZ);
sam_grove 7:518e61df67d7 69 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 70 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 71 puts("");
sam_grove 7:518e61df67d7 72 wait(5.0f);
JimCarver 0:748fe54f0947 73 }
JimCarver 0:748fe54f0947 74 }