testing documentation

Dependencies:   mbed ll16j23s_test_docs

Committer:
JoeShotton
Date:
Tue May 26 23:57:47 2020 +0000
Revision:
12:33a5cff31339
Parent:
3:fcd6d70e9694
documentation test 3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JoeShotton 3:fcd6d70e9694 1 /** @file FXOS8700CQ.h
JoeShotton 3:fcd6d70e9694 2
JoeShotton 3:fcd6d70e9694 3 @ brief FXOS8700CQ Library
JoeShotton 3:fcd6d70e9694 4
JoeShotton 3:fcd6d70e9694 5 @author Dr Craig A. Evans
JoeShotton 3:fcd6d70e9694 6 @brief (c) University of Leeds, Jan 2017
JoeShotton 3:fcd6d70e9694 7
JoeShotton 3:fcd6d70e9694 8 @code
JoeShotton 3:fcd6d70e9694 9
JoeShotton 3:fcd6d70e9694 10 #include "mbed.h"
JoeShotton 3:fcd6d70e9694 11 #include "FXOS8700CQ.h"
JoeShotton 3:fcd6d70e9694 12
JoeShotton 3:fcd6d70e9694 13 // create object and specifiy pins
JoeShotton 3:fcd6d70e9694 14 FXOS8700CQ device(I2C_SDA,I2C_SCL);
JoeShotton 3:fcd6d70e9694 15
JoeShotton 3:fcd6d70e9694 16 int main()
JoeShotton 3:fcd6d70e9694 17 {
JoeShotton 3:fcd6d70e9694 18 // call initialisation method
JoeShotton 3:fcd6d70e9694 19 device.init();
JoeShotton 3:fcd6d70e9694 20
JoeShotton 3:fcd6d70e9694 21 while (1) {
JoeShotton 3:fcd6d70e9694 22
JoeShotton 3:fcd6d70e9694 23 // poll the sensor and get the values, storing in a struct
JoeShotton 3:fcd6d70e9694 24 Data values = device.get_values();
JoeShotton 3:fcd6d70e9694 25
JoeShotton 3:fcd6d70e9694 26 // print each struct member over serial
JoeShotton 3:fcd6d70e9694 27 printf("ax = %f ay = %f az = %f | mx = %f my = %f mz = %f\n"
JoeShotton 3:fcd6d70e9694 28 ,values.ax, values.ay, values.az
JoeShotton 3:fcd6d70e9694 29 ,values.mx, values.my, values.mz);
JoeShotton 3:fcd6d70e9694 30
JoeShotton 3:fcd6d70e9694 31 wait(0.5);
JoeShotton 3:fcd6d70e9694 32 }
JoeShotton 3:fcd6d70e9694 33 }
JoeShotton 3:fcd6d70e9694 34
JoeShotton 3:fcd6d70e9694 35 @endcode
JoeShotton 3:fcd6d70e9694 36
JoeShotton 3:fcd6d70e9694 37 */
JoeShotton 3:fcd6d70e9694 38
JoeShotton 3:fcd6d70e9694 39 #ifndef FXOS8700CQ_H
JoeShotton 3:fcd6d70e9694 40 #define FXOS8700CQ_H
JoeShotton 3:fcd6d70e9694 41
JoeShotton 3:fcd6d70e9694 42 #include "mbed.h"
JoeShotton 3:fcd6d70e9694 43
JoeShotton 3:fcd6d70e9694 44 // mbed API uses 8-bit addresses so need to left-shift 7-bit addresses by 1
JoeShotton 3:fcd6d70e9694 45 #define FXOS8700CQ_ADDR (0x1D << 1) // for K64F board
JoeShotton 3:fcd6d70e9694 46 // values from 13.2 datasheet
JoeShotton 3:fcd6d70e9694 47 #define FXOS8700CQ_STATUS 0x00
JoeShotton 3:fcd6d70e9694 48 #define FXOS8700CQ_WHO_AM_I 0x0D
JoeShotton 3:fcd6d70e9694 49 #define FXOS8700CQ_XYZ_DATA_CFG 0x0E
JoeShotton 3:fcd6d70e9694 50 #define FXOS8700CQ_CTRL_REG1 0x2A
JoeShotton 3:fcd6d70e9694 51 #define FXOS8700CQ_M_CTRL_REG1 0x5B
JoeShotton 3:fcd6d70e9694 52 #define FXOS8700CQ_M_CTRL_REG2 0x5C
JoeShotton 3:fcd6d70e9694 53 #define FXOS8700CQ_WHO_AM_I_VAL 0xC7
JoeShotton 3:fcd6d70e9694 54 #define FXOS8700CQ_READ_LEN 13
JoeShotton 3:fcd6d70e9694 55
JoeShotton 3:fcd6d70e9694 56 #define PI 3.14159265359f
JoeShotton 3:fcd6d70e9694 57 #define RAD2DEG 57.2957795131f
JoeShotton 3:fcd6d70e9694 58
JoeShotton 3:fcd6d70e9694 59 struct Data {
JoeShotton 3:fcd6d70e9694 60 float ax;
JoeShotton 3:fcd6d70e9694 61 float ay;
JoeShotton 3:fcd6d70e9694 62 float az;
JoeShotton 3:fcd6d70e9694 63 float mx;
JoeShotton 3:fcd6d70e9694 64 float my;
JoeShotton 3:fcd6d70e9694 65 float mz;
JoeShotton 3:fcd6d70e9694 66 };
JoeShotton 3:fcd6d70e9694 67
JoeShotton 3:fcd6d70e9694 68 class FXOS8700CQ
JoeShotton 3:fcd6d70e9694 69 {
JoeShotton 3:fcd6d70e9694 70
JoeShotton 3:fcd6d70e9694 71 public:
JoeShotton 3:fcd6d70e9694 72 FXOS8700CQ(PinName sda, PinName scl);
JoeShotton 3:fcd6d70e9694 73 ~FXOS8700CQ();
JoeShotton 3:fcd6d70e9694 74 void init();
JoeShotton 3:fcd6d70e9694 75 Data get_values();
JoeShotton 3:fcd6d70e9694 76 float get_pitch_angle(double my, double mz);
JoeShotton 3:fcd6d70e9694 77 float get_roll_angle(double mx, double my, double mz);
JoeShotton 3:fcd6d70e9694 78
JoeShotton 3:fcd6d70e9694 79 private:
JoeShotton 3:fcd6d70e9694 80 I2C* i2c;
JoeShotton 3:fcd6d70e9694 81
JoeShotton 3:fcd6d70e9694 82 void send_byte_to_reg(char byte,char reg);
JoeShotton 3:fcd6d70e9694 83 char read_byte_from_reg(char reg);
JoeShotton 3:fcd6d70e9694 84 void read_bytes_from_reg(char reg,int number_of_bytes,char bytes[]);
JoeShotton 3:fcd6d70e9694 85 };
JoeShotton 3:fcd6d70e9694 86
JoeShotton 3:fcd6d70e9694 87 #endif