a
Fork of FRDM_MMA8451Q by
MMA8451Q.h@12:37acb52ade50, 2016-12-17 (annotated)
- Committer:
- rendek4
- Date:
- Sat Dec 17 21:22:50 2016 +0000
- Revision:
- 12:37acb52ade50
- Parent:
- 10:fa532bf396fb
akcelerometer
Who changed what in which revision?
User | Revision | Line number | New 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 |