James Cummins / Mbed 2 deprecated el17jnc

Dependencies:   mbed

Committer:
JamesCummins
Date:
Wed Mar 27 20:21:07 2019 +0000
Revision:
0:7c96d84b673e
Development of the welcome page

Who changed what in which revision?

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