Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of MMA8451Q8_v1 by
MMA8451Q.h@0:6149091f755d, 2012-10-11 (annotated)
- Committer:
- emilmont
- Date:
- Thu Oct 11 10:54:16 2012 +0000
- Revision:
- 0:6149091f755d
- Child:
- 1:d2630136d51e
Package samux acceleromiter library;
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 | //!Library for the MMA8451Q motion sensor. |
emilmont | 0:6149091f755d | 7 | class MMA8451Q |
emilmont | 0:6149091f755d | 8 | { |
emilmont | 0:6149091f755d | 9 | public: |
emilmont | 0:6149091f755d | 10 | //!Creates an instance of the class. |
emilmont | 0:6149091f755d | 11 | /* |
emilmont | 0:6149091f755d | 12 | * Connect module at I2C address addr using I2C port pins sda and scl. |
emilmont | 0:6149091f755d | 13 | * MMA8451Q |
emilmont | 0:6149091f755d | 14 | * \param sda SDA pin |
emilmont | 0:6149091f755d | 15 | * \param sdl SCL pin |
emilmont | 0:6149091f755d | 16 | * \param addr addr of the I2C peripheral |
emilmont | 0:6149091f755d | 17 | */ |
emilmont | 0:6149091f755d | 18 | MMA8451Q(PinName sda, PinName scl, int addr); |
emilmont | 0:6149091f755d | 19 | |
emilmont | 0:6149091f755d | 20 | /* |
emilmont | 0:6149091f755d | 21 | * Destroys instance. |
emilmont | 0:6149091f755d | 22 | */ |
emilmont | 0:6149091f755d | 23 | ~MMA8451Q(); |
emilmont | 0:6149091f755d | 24 | |
emilmont | 0:6149091f755d | 25 | /* |
emilmont | 0:6149091f755d | 26 | * Get the value of the WHO_AM_I register |
emilmont | 0:6149091f755d | 27 | * |
emilmont | 0:6149091f755d | 28 | * \returns WHO_AM_I value |
emilmont | 0:6149091f755d | 29 | */ |
emilmont | 0:6149091f755d | 30 | uint8_t getWhoAmI(); |
emilmont | 0:6149091f755d | 31 | |
emilmont | 0:6149091f755d | 32 | /* |
emilmont | 0:6149091f755d | 33 | * Get X axis acceleration |
emilmont | 0:6149091f755d | 34 | * |
emilmont | 0:6149091f755d | 35 | * \returns X axis acceleration |
emilmont | 0:6149091f755d | 36 | */ |
emilmont | 0:6149091f755d | 37 | int16_t getAccX(); |
emilmont | 0:6149091f755d | 38 | |
emilmont | 0:6149091f755d | 39 | /* |
emilmont | 0:6149091f755d | 40 | * Get Y axis acceleration |
emilmont | 0:6149091f755d | 41 | * |
emilmont | 0:6149091f755d | 42 | * \returns Y axis acceleration |
emilmont | 0:6149091f755d | 43 | */ |
emilmont | 0:6149091f755d | 44 | int16_t getAccY(); |
emilmont | 0:6149091f755d | 45 | |
emilmont | 0:6149091f755d | 46 | /* |
emilmont | 0:6149091f755d | 47 | * Get Z axis acceleration |
emilmont | 0:6149091f755d | 48 | * |
emilmont | 0:6149091f755d | 49 | * \returns Z axis acceleration |
emilmont | 0:6149091f755d | 50 | */ |
emilmont | 0:6149091f755d | 51 | int16_t getAccZ(); |
emilmont | 0:6149091f755d | 52 | |
emilmont | 0:6149091f755d | 53 | /* |
emilmont | 0:6149091f755d | 54 | * Get XYZ axis acceleration |
emilmont | 0:6149091f755d | 55 | * |
emilmont | 0:6149091f755d | 56 | * \param res array where acceleration data will be stored |
emilmont | 0:6149091f755d | 57 | */ |
emilmont | 0:6149091f755d | 58 | void getAccAllAxis(int16_t * res); |
emilmont | 0:6149091f755d | 59 | |
emilmont | 0:6149091f755d | 60 | I2C m_i2c; |
emilmont | 0:6149091f755d | 61 | |
emilmont | 0:6149091f755d | 62 | private: |
emilmont | 0:6149091f755d | 63 | int m_addr; |
emilmont | 0:6149091f755d | 64 | void read_regs(int addr, uint8_t * data, int len); |
emilmont | 0:6149091f755d | 65 | void write_regs(uint8_t * data, int len); |
emilmont | 0:6149091f755d | 66 | int16_t getAccAxis(uint8_t addr); |
emilmont | 0:6149091f755d | 67 | |
emilmont | 0:6149091f755d | 68 | }; |
emilmont | 0:6149091f755d | 69 | |
emilmont | 0:6149091f755d | 70 | #endif |