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
MMA8652.h@0:3ae1e808e61c, 2014-04-07 (annotated)
- 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?
User | Revision | Line number | New 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 |