Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Hexi_GPSIMU_Hotshoe
Fork of FXOS8700CQ by
FXOS8700CQ.h
00001 /* FXOS8700CQ Library 00002 00003 Sample code from ELEC2645 - demonstrates how to create a library 00004 for the K64F on-board accelerometer and magnetometer 00005 00006 (c) Craig A. Evans, University of Leeds, Jan 2017 00007 00008 */ 00009 00010 #ifndef FXOS8700CQ_H 00011 #define FXOS8700CQ_H 00012 00013 #include "mbed.h" 00014 00015 // mbed API uses 8-bit addresses so need to left-shift 7-bit addresses by 1 00016 // FXOS8700CQ I2C address 00017 #define FXOS8700CQ_SLAVE_ADDR0 (0x1E<<1) // with pins SA0=0, SA1=0 00018 #define FXOS8700CQ_SLAVE_ADDR1 (0x1D<<1) // with pins SA0=1, SA1=0 00019 #define FXOS8700CQ_SLAVE_ADDR2 (0x1C<<1) // with pins SA0=0, SA1=1 00020 #define FXOS8700CQ_SLAVE_ADDR3 (0x1F<<1) // with pins SA0=1, SA1=1 00021 //#define FXOS8700CQ_ADDR FXOS8700CQ_SLAVE_ADDR1 // for K64F board 00022 #define FXOS8700CQ_ADDR FXOS8700CQ_SLAVE_ADDR0 // for Hexiwear board 00023 // values from 13.2 datasheet 00024 #define FXOS8700CQ_STATUS 0x00 00025 #define FXOS8700CQ_WHO_AM_I 0x0D 00026 #define FXOS8700CQ_XYZ_DATA_CFG 0x0E 00027 #define FXOS8700CQ_CTRL_REG1 0x2A 00028 #define FXOS8700CQ_M_CTRL_REG1 0x5B 00029 #define FXOS8700CQ_M_CTRL_REG2 0x5C 00030 #define FXOS8700CQ_WHO_AM_I_VAL 0xC7 00031 #define FXOS8700CQ_READ_LEN 13 00032 00033 #define PI 3.14159265358979323846f 00034 #define RAD2DEG 57.2957795131f 00035 00036 struct Data { 00037 float ax; 00038 float ay; 00039 float az; 00040 float mx; 00041 float my; 00042 float mz; 00043 }; 00044 00045 class FXOS8700CQ 00046 { 00047 00048 public: 00049 FXOS8700CQ(PinName sda, PinName scl); 00050 ~FXOS8700CQ(); 00051 void init(); 00052 Data get_values(); 00053 float get_pitch(); 00054 float get_roll(); 00055 00056 private: 00057 I2C* i2c; 00058 00059 void send_byte_to_reg(char byte,char reg); 00060 char read_byte_from_reg(char reg); 00061 void read_bytes_from_reg(char reg,int number_of_bytes,char bytes[]); 00062 }; 00063 00064 #endif
Generated on Thu Jul 14 2022 16:29:47 by
1.7.2
