a

Fork of FRDM_MMA8451Q by clemente di caprio

Committer:
rendek4
Date:
Sat Dec 17 21:22:50 2016 +0000
Revision:
12:37acb52ade50
Parent:
10:fa532bf396fb
akcelerometer

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 0:6149091f755d 1 #ifndef MMA8451Q_H
emilmont 0:6149091f755d 2 #define MMA8451Q_H
emilmont 0:6149091f755d 3
emilmont 0:6149091f755d 4 #include "mbed.h"
emilmont 0:6149091f755d 5
emilmont 0:6149091f755d 6 class MMA8451Q
emilmont 0:6149091f755d 7 {
emilmont 0:6149091f755d 8 public:
clemente 5:695063448f2a 9 /**
clemente 5:695063448f2a 10 * MMA8451Q constructor
clemente 5:695063448f2a 11 *
clemente 5:695063448f2a 12 * @param sda SDA pin
clemente 5:695063448f2a 13 * @param sdl SCL pin
clemente 5:695063448f2a 14 * @param addr addr of the I2C peripheral
clemente 5:695063448f2a 15 */
clemente 5:695063448f2a 16 MMA8451Q(PinName sda, PinName scl, int addr);
clemente 5:695063448f2a 17
clemente 5:695063448f2a 18 /**
clemente 5:695063448f2a 19 * MMA8451Q destructor
clemente 5:695063448f2a 20 */
clemente 5:695063448f2a 21 ~MMA8451Q();
clemente 5:695063448f2a 22
rendek4 12:37acb52ade50 23 float getAccX();
rendek4 12:37acb52ade50 24
rendek4 12:37acb52ade50 25 /**
rendek4 12:37acb52ade50 26 * Get Y axis acceleration
rendek4 12:37acb52ade50 27 *
rendek4 12:37acb52ade50 28 * @returns Y axis acceleration
rendek4 12:37acb52ade50 29 */
rendek4 12:37acb52ade50 30 float getAccY();
emilmont 0:6149091f755d 31
rendek4 12:37acb52ade50 32 /**
rendek4 12:37acb52ade50 33 * Get Z axis acceleration
rendek4 12:37acb52ade50 34 *
rendek4 12:37acb52ade50 35 * @returns Z axis acceleration
rendek4 12:37acb52ade50 36 */
rendek4 12:37acb52ade50 37 float getAccZ();
clemente 10:fa532bf396fb 38
rendek4 12:37acb52ade50 39 /**
rendek4 12:37acb52ade50 40 * Get XYZ axis acceleration
rendek4 12:37acb52ade50 41 *
rendek4 12:37acb52ade50 42 * @param res array where acceleration data will be stored
rendek4 12:37acb52ade50 43 */
rendek4 12:37acb52ade50 44 void getAccAllAxis(float * res);
clemente 8:7e6013f11b10 45
clemente 8:7e6013f11b10 46 /**
clemente 8:7e6013f11b10 47 * Configure the Accelerometere for motion detection
clemente 8:7e6013f11b10 48 *
clemente 8:7e6013f11b10 49 * @param pointer to the user function to execute after IRQ assertion
clemente 8:7e6013f11b10 50 * @return none
clemente 8:7e6013f11b10 51 */
clemente 5:695063448f2a 52 void MotionDetection( void(*fptr)(void));
clemente 8:7e6013f11b10 53
clemente 8:7e6013f11b10 54 /**
clemente 8:7e6013f11b10 55 * Soft Reset
clemente 8:7e6013f11b10 56 * @param none
clemente 8:7e6013f11b10 57 * @return none
clemente 8:7e6013f11b10 58 */
clemente 8:7e6013f11b10 59 void Reset( void);
clemente 5:695063448f2a 60
emilmont 0:6149091f755d 61 private:
clemente 5:695063448f2a 62 I2C m_i2c;
clemente 5:695063448f2a 63 int m_addr;
clemente 5:695063448f2a 64 void readRegs(int addr, uint8_t * data, int len);
clemente 5:695063448f2a 65 void writeRegs(uint8_t * data, int len);
clemente 5:695063448f2a 66 int16_t getAccAxis(uint8_t addr);
clemente 5:695063448f2a 67 void Standby( void);
clemente 5:695063448f2a 68 void Active( void);
clemente 5:695063448f2a 69 void Motion_IRQ( void);
emilmont 0:6149091f755d 70 };
emilmont 0:6149091f755d 71
emilmont 0:6149091f755d 72 #endif