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 MMA8452 by
MMA8452.h@2:ca714556a07d, 2015-05-11 (annotated)
- Committer:
- chushengyuan
- Date:
- Mon May 11 13:15:23 2015 +0000
- Revision:
- 2:ca714556a07d
- Parent:
- 0:df3b9e41edf3
Final
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:df3b9e41edf3 | 1 | /** |
eencae | 0:df3b9e41edf3 | 2 | @file MMA8452.h |
chushengyuan | 2:ca714556a07d | 3 | @brief Header file containing member functions and variables. |
chushengyuan | 2:ca714556a07d | 4 | @brief Acknowledgements to Dr.Craig A. Evans's Library. |
eencae | 0:df3b9e41edf3 | 5 | */ |
eencae | 0:df3b9e41edf3 | 6 | |
eencae | 0:df3b9e41edf3 | 7 | #ifndef MMA8452_H |
eencae | 0:df3b9e41edf3 | 8 | #define MMA8452_H |
eencae | 0:df3b9e41edf3 | 9 | |
eencae | 0:df3b9e41edf3 | 10 | // MMA8452 address is 0x1D by default (see EAGLE schematic of breakout - SA = 1) |
eencae | 0:df3b9e41edf3 | 11 | #define MMA8452_W_ADDRESS 0x3A |
eencae | 0:df3b9e41edf3 | 12 | #define MMA8452_R_ADDRESS 0x3B |
eencae | 0:df3b9e41edf3 | 13 | // Register Descriptions - p18 datasheet |
eencae | 0:df3b9e41edf3 | 14 | #define OUT_X_MSB 0x01 |
eencae | 0:df3b9e41edf3 | 15 | #define WHO_AM_I 0x0D |
eencae | 0:df3b9e41edf3 | 16 | #define CTRL_REG1 0x2A |
eencae | 0:df3b9e41edf3 | 17 | #define XYZ_DATA_CFG 0x0E |
eencae | 0:df3b9e41edf3 | 18 | |
eencae | 0:df3b9e41edf3 | 19 | typedef struct Acceleration Acceleration; |
eencae | 0:df3b9e41edf3 | 20 | struct Acceleration { |
eencae | 0:df3b9e41edf3 | 21 | float x; |
eencae | 0:df3b9e41edf3 | 22 | float y; |
eencae | 0:df3b9e41edf3 | 23 | float z; |
eencae | 0:df3b9e41edf3 | 24 | }; |
eencae | 0:df3b9e41edf3 | 25 | |
eencae | 0:df3b9e41edf3 | 26 | #include "mbed.h" |
eencae | 0:df3b9e41edf3 | 27 | |
eencae | 0:df3b9e41edf3 | 28 | class MMA8452 |
eencae | 0:df3b9e41edf3 | 29 | { |
eencae | 0:df3b9e41edf3 | 30 | |
eencae | 0:df3b9e41edf3 | 31 | public: |
eencae | 0:df3b9e41edf3 | 32 | /** Create a MMA8452 object connected to the specified pins |
eencae | 0:df3b9e41edf3 | 33 | * |
eencae | 0:df3b9e41edf3 | 34 | * @param sdaPin - mbed SDA pin |
eencae | 0:df3b9e41edf3 | 35 | * @param sclPin - mbed SCL pin |
eencae | 0:df3b9e41edf3 | 36 | * |
eencae | 0:df3b9e41edf3 | 37 | */ |
eencae | 0:df3b9e41edf3 | 38 | MMA8452(PinName sdaPin, PinName sclPin); |
eencae | 0:df3b9e41edf3 | 39 | |
eencae | 0:df3b9e41edf3 | 40 | /** Initialise accelerometer |
eencae | 0:df3b9e41edf3 | 41 | * |
eencae | 0:df3b9e41edf3 | 42 | * Powers up the accelerometer, sets 100 Hz update rate and ±4g scale |
eencae | 0:df3b9e41edf3 | 43 | */ |
eencae | 0:df3b9e41edf3 | 44 | void init(); |
eencae | 0:df3b9e41edf3 | 45 | |
eencae | 0:df3b9e41edf3 | 46 | /** Get values of acceleration |
eencae | 0:df3b9e41edf3 | 47 | * |
eencae | 0:df3b9e41edf3 | 48 | * Reads the x,y,z values in g's |
eencae | 0:df3b9e41edf3 | 49 | * @returns an Acceleration structure with x,y,z members (float) |
eencae | 0:df3b9e41edf3 | 50 | */ |
eencae | 0:df3b9e41edf3 | 51 | Acceleration readValues(); |
eencae | 0:df3b9e41edf3 | 52 | |
eencae | 0:df3b9e41edf3 | 53 | |
eencae | 0:df3b9e41edf3 | 54 | private: |
eencae | 0:df3b9e41edf3 | 55 | void sendByteToRegister(char byte,char reg); |
eencae | 0:df3b9e41edf3 | 56 | char readByteFromRegister(char reg); |
eencae | 0:df3b9e41edf3 | 57 | void readBytesFromRegister(char reg,int numberOfBytes,char bytes[]); |
eencae | 0:df3b9e41edf3 | 58 | void error(); |
eencae | 0:df3b9e41edf3 | 59 | |
eencae | 0:df3b9e41edf3 | 60 | public: |
eencae | 0:df3b9e41edf3 | 61 | |
eencae | 0:df3b9e41edf3 | 62 | private: // private variables |
eencae | 0:df3b9e41edf3 | 63 | I2C* i2c; |
eencae | 0:df3b9e41edf3 | 64 | BusOut* leds; |
eencae | 0:df3b9e41edf3 | 65 | |
eencae | 0:df3b9e41edf3 | 66 | }; |
eencae | 0:df3b9e41edf3 | 67 | |
eencae | 0:df3b9e41edf3 | 68 | |
eencae | 0:df3b9e41edf3 | 69 | |
chushengyuan | 2:ca714556a07d | 70 | #endif |