A work in progress on an updated library
Dependents: FRDM_N3110LCD test
Fork of MMA8451Q by
Diff: MMA8451Q.h
- Revision:
- 5:d813fe6c0c70
- Parent:
- 4:c4d879a39775
--- a/MMA8451Q.h Fri Oct 12 11:35:07 2012 +0000 +++ b/MMA8451Q.h Thu Mar 14 21:57:04 2013 +0000 @@ -27,17 +27,17 @@ * @code * #include "mbed.h" * #include "MMA8451Q.h" -* +* * #define MMA8451_I2C_ADDRESS (0x1d<<1) -* +* * int main(void) { -* +* * MMA8451Q acc(P_E25, P_E24, MMA8451_I2C_ADDRESS); * PwmOut rled(LED_RED); * PwmOut gled(LED_GREEN); * PwmOut bled(LED_BLUE); -* -* while (true) { +* +* while (true) { * rled = 1.0 - abs(acc.getAccX()); * gled = 1.0 - abs(acc.getAccY()); * bled = 1.0 - abs(acc.getAccZ()); @@ -49,61 +49,65 @@ class MMA8451Q { public: - /** - * MMA8451Q constructor - * - * @param sda SDA pin - * @param sdl SCL pin - * @param addr addr of the I2C peripheral - */ - MMA8451Q(PinName sda, PinName scl, int addr); + /** + * MMA8451Q constructor + * + * @param sda SDA pin + * @param sdl SCL pin + * @param addr addr of the I2C peripheral + */ + MMA8451Q(PinName sda, PinName scl, int addr, bool highres, uint8_t scale); - /** - * MMA8451Q destructor - */ - ~MMA8451Q(); + /** + * MMA8451Q destructor + */ + ~MMA8451Q(); - /** - * Get the value of the WHO_AM_I register - * - * @returns WHO_AM_I value - */ - uint8_t getWhoAmI(); + /** + * Get the value of the WHO_AM_I register + * + * @returns WHO_AM_I value + */ + uint8_t getWhoAmI(); - /** - * Get X axis acceleration - * - * @returns X axis acceleration - */ - float getAccX(); + /** + * Get X axis acceleration + * + * @returns X axis acceleration + */ + float getAccX(); - /** - * Get Y axis acceleration - * - * @returns Y axis acceleration - */ - float getAccY(); + /** + * Get Y axis acceleration + * + * @returns Y axis acceleration + */ + float getAccY(); - /** - * Get Z axis acceleration - * - * @returns Z axis acceleration - */ - float getAccZ(); + /** + * Get Z axis acceleration + * + * @returns Z axis acceleration + */ + float getAccZ(); - /** - * Get XYZ axis acceleration - * - * @param res array where acceleration data will be stored - */ - void getAccAllAxis(float * res); + /** + * Get XYZ axis acceleration + * + * @param res array where acceleration data will be stored + */ + void getAccAllAxis(float * res); private: - I2C m_i2c; - int m_addr; - void readRegs(int addr, uint8_t * data, int len); - void writeRegs(uint8_t * data, int len); - int16_t getAccAxis(uint8_t addr); + I2C m_i2c; + int m_addr; + void readRegs(int addr, uint8_t * data, int len); + void writeRegs(uint8_t * data, int len); + int16_t getAccAxis(uint8_t addr); + float getAccAxisF(uint8_t addr); + uint8_t _scale; + float _step_factor; + bool _highres; };