Very simple library for the FXOS8700 combined magnetometer and accelerometer

FXOS8700.h

Committer:
jhd25
Date:
2019-01-29
Revision:
2:24e7cbc80327
Parent:
1:c0795224b157

File content as of revision 2:24e7cbc80327:

/* Copyright (c) 2017 JHD
 */

#ifndef FXOS8700_H
#define FXOS8700_H

#include "mbed.h"
#include "stdint.h"

struct FXOS8700_data
{
	int16_t x;
	int16_t y;
	int16_t z;
	int16_t mx;
	int16_t my;
	int16_t mz;

};

//  FXOS8700 registers
#define FXOS8700CQ_STATUS 0x00
#define FXOS8700CQ_WHOAMI 0x0D
#define FXOS8700CQ_XYZ_DATA_CFG 0x0E
#define FXOS8700CQ_CTRL_REG1 0x2A
#define FXOS8700CQ_M_CTRL_REG1 0x5B
#define FXOS8700CQ_M_CTRL_REG2 0x5C
#define FXOS8700CQ_WHOAMI_VAL 0xC7

//!Library for the FXOS8700 magnetometer.

class FXOS8700
{
public:
  //!Creates an instance of the class.
  /*!
  Connect module at I2C address addr using I2C port pins sda and scl.
  */
  FXOS8700(PinName sda, PinName scl, int chip_address);
  
  /*!
  Destroys instance.
  */ 
  ~FXOS8700();
  
  //!Reads the current registers.
  int i2c_address;
  FXOS8700_data read();  
  bool i2c_error;
  
private:
  
  I2C i2c;
  FXOS8700_data readdata;

};

#endif