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.
FXOS8700CQ.h
00001 /** @file FXOS8700CQ.h 00002 00003 @ brief FXOS8700CQ Library 00004 00005 @author Dr Craig A. Evans 00006 @brief (c) University of Leeds, Jan 2017 00007 00008 @code 00009 00010 #include "mbed.h" 00011 #include "FXOS8700CQ.h" 00012 00013 // create object and specifiy pins 00014 FXOS8700CQ device(I2C_SDA,I2C_SCL); 00015 00016 int main() 00017 { 00018 // call initialisation method 00019 device.init(); 00020 00021 while (1) { 00022 00023 // poll the sensor and get the values, storing in a struct 00024 Data values = device.get_values(); 00025 00026 // print each struct member over serial 00027 printf("ax = %f ay = %f az = %f | mx = %f my = %f mz = %f\n" 00028 ,values.ax, values.ay, values.az 00029 ,values.mx, values.my, values.mz); 00030 00031 wait(0.5); 00032 } 00033 } 00034 00035 @endcode 00036 00037 */ 00038 00039 #ifndef FXOS8700CQ_H 00040 #define FXOS8700CQ_H 00041 00042 #include "mbed.h" 00043 00044 // mbed API uses 8-bit addresses so need to left-shift 7-bit addresses by 1 00045 #define FXOS8700CQ_ADDR (0x1D << 1) // for K64F board 00046 // values from 13.2 datasheet 00047 #define FXOS8700CQ_STATUS 0x00 00048 #define FXOS8700CQ_WHO_AM_I 0x0D 00049 #define FXOS8700CQ_XYZ_DATA_CFG 0x0E 00050 #define FXOS8700CQ_CTRL_REG1 0x2A 00051 #define FXOS8700CQ_M_CTRL_REG1 0x5B 00052 #define FXOS8700CQ_M_CTRL_REG2 0x5C 00053 #define FXOS8700CQ_WHO_AM_I_VAL 0xC7 00054 #define FXOS8700CQ_READ_LEN 13 00055 00056 #define PI 3.14159265359f 00057 #define RAD2DEG 57.2957795131f 00058 00059 struct Data { 00060 int16_t ax; 00061 int16_t ay; 00062 int16_t az; 00063 int16_t mx; 00064 int16_t my; 00065 int16_t mz; 00066 }; 00067 00068 class FXOS8700CQ 00069 { 00070 00071 public: 00072 FXOS8700CQ(PinName sda, PinName scl); 00073 ~FXOS8700CQ(); 00074 void init(); 00075 Data get_values(); 00076 00077 private: 00078 I2C* i2c; 00079 00080 void send_byte_to_reg(char byte,char reg); 00081 char read_byte_from_reg(char reg); 00082 void read_bytes_from_reg(char reg,int number_of_bytes,char bytes[]); 00083 }; 00084 00085 #endif
Generated on Tue Jul 12 2022 17:55:36 by
