A basic library for the MMA8652 accelerometer, provides data in either floating point G's or as a signed 16 bit integer.

Dependents:   Hello_MMA8652 Multi-Sensor Buddi_Blueband Freescale_Multi-Sensor_Shield ... more

Committer:
JimCarver
Date:
Mon Apr 07 00:59:06 2014 +0000
Revision:
0:3ae1e808e61c
Child:
1:ff30cc4759b4
Rev 0.1 Simple operation of just X, Y, Z values in floating point G's

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JimCarver 0:3ae1e808e61c 1 #ifndef MMA8652_H
JimCarver 0:3ae1e808e61c 2 #define MMA8652_H
JimCarver 0:3ae1e808e61c 3
JimCarver 0:3ae1e808e61c 4 #include "mbed.h"
JimCarver 0:3ae1e808e61c 5
JimCarver 0:3ae1e808e61c 6
JimCarver 0:3ae1e808e61c 7 // MMA8652 Slave Address
JimCarver 0:3ae1e808e61c 8 #define MMA8652_SLAVE_ADDR 0x3A
JimCarver 0:3ae1e808e61c 9
JimCarver 0:3ae1e808e61c 10 // MMA8652 internal register addresses
JimCarver 0:3ae1e808e61c 11 #define MMA8652_STATUS 0x00
JimCarver 0:3ae1e808e61c 12 #define MMA8652_WHOAMI 0x0D
JimCarver 0:3ae1e808e61c 13 #define MMA8652_XYZ_DATA_CFG 0x0E
JimCarver 0:3ae1e808e61c 14 #define MMA8652_CTRL_REG1 0x2A
JimCarver 0:3ae1e808e61c 15 #define MMA8652_WHOAMI_VAL 0x4A
JimCarver 0:3ae1e808e61c 16
JimCarver 0:3ae1e808e61c 17 class MMA8652
JimCarver 0:3ae1e808e61c 18 {
JimCarver 0:3ae1e808e61c 19 public:
JimCarver 0:3ae1e808e61c 20 /**
JimCarver 0:3ae1e808e61c 21 * MPL3115A2 constructor
JimCarver 0:3ae1e808e61c 22 *
JimCarver 0:3ae1e808e61c 23 * @param sda SDA pin
JimCarver 0:3ae1e808e61c 24 * @param sdl SCL pin
JimCarver 0:3ae1e808e61c 25 * @param addr addr of the I2C peripheral
JimCarver 0:3ae1e808e61c 26 */
JimCarver 0:3ae1e808e61c 27 MMA8652(PinName sda, PinName scl);
JimCarver 0:3ae1e808e61c 28
JimCarver 0:3ae1e808e61c 29 /**
JimCarver 0:3ae1e808e61c 30 * Get the value of the WHO_AM_I register
JimCarver 0:3ae1e808e61c 31 *
JimCarver 0:3ae1e808e61c 32 * @returns DEVICE_ID value == ??
JimCarver 0:3ae1e808e61c 33 */
JimCarver 0:3ae1e808e61c 34 //uint8_t getDeviceID();
JimCarver 0:3ae1e808e61c 35
JimCarver 0:3ae1e808e61c 36 /**
JimCarver 0:3ae1e808e61c 37 * Return the STATUS register value
JimCarver 0:3ae1e808e61c 38 *
JimCarver 0:3ae1e808e61c 39 * @returns STATUS register value
JimCarver 0:3ae1e808e61c 40 */
JimCarver 0:3ae1e808e61c 41 //unsigned char getStatus( void);
JimCarver 0:3ae1e808e61c 42
JimCarver 0:3ae1e808e61c 43 /**
JimCarver 0:3ae1e808e61c 44 * Get the Accelerometer & Magnetometer values
JimCarver 0:3ae1e808e61c 45 * Accelerometer data is in G's
JimCarver 0:3ae1e808e61c 46 * MAgnetometer Data is in microteslas
JimCarver 0:3ae1e808e61c 47 *
JimCarver 0:3ae1e808e61c 48 * @returns altimeter value as float
JimCarver 0:3ae1e808e61c 49 */
JimCarver 0:3ae1e808e61c 50 void ReadXYZ(float * a);
JimCarver 0:3ae1e808e61c 51
JimCarver 0:3ae1e808e61c 52
JimCarver 0:3ae1e808e61c 53 private:
JimCarver 0:3ae1e808e61c 54
JimCarver 0:3ae1e808e61c 55 I2C _i2c;
JimCarver 0:3ae1e808e61c 56 /** Set the device in active mode
JimCarver 0:3ae1e808e61c 57 */
JimCarver 0:3ae1e808e61c 58 void begin( void);
JimCarver 0:3ae1e808e61c 59
JimCarver 0:3ae1e808e61c 60 void RegRead( char reg, char * d, int len);
JimCarver 0:3ae1e808e61c 61
JimCarver 0:3ae1e808e61c 62
JimCarver 0:3ae1e808e61c 63 };
JimCarver 0:3ae1e808e61c 64
JimCarver 0:3ae1e808e61c 65 #endif