![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
3 axis accellerometer for pitch and roll on lcd and serial output
Diff: MMA7660.h
- Revision:
- 1:8997a1b348dd
- Parent:
- 0:7bc29a9ea016
- Child:
- 2:a8e20db7901e
diff -r 7bc29a9ea016 -r 8997a1b348dd MMA7660.h --- a/MMA7660.h Sun Oct 14 08:02:53 2012 +0000 +++ b/MMA7660.h Tue Oct 16 19:42:19 2012 +0000 @@ -10,11 +10,28 @@ #define MMA7660_XOUT_R 0x00 #define MMA7660_YOUT_R 0x01 #define MMA7660_ZOUT_R 0x02 +#define MMA7660_TILT_R 0x03 +#define MMA7660_INT_R 0x06 #define MMA7660_MODE_R 0x07 +#define MMA7660_SR_R 0x08 + class MMA7660 { public: + /** + * The 6 different orientations and unknown + * + * Up & Down = X-axis + * Right & Left = Y-axis + * Back & Front = Z-axis + * + */ + enum Orientation{Up, Down, + Right, Left, + Back, Front, + Unknown}; + /** * Creates a new MMA7660 object * @@ -54,29 +71,75 @@ void readData( int *data); void readData( float *data); - /** Get X-data + /** + * Get X-data * * @param return - X-acceleration in g's */ float getX( void ); - /** Get Y-data + /** + * Get Y-data * * @param return - Y-acceleration in g's */ float getY( void ); - /** Get Z-data + /** + * Get Z-data * * @param return - Z-acceleration in g's */ - float getZ( void ); + float getZ( void ); + + /** + * Sets the active samplerate + * + * The entered samplerate will be rounded to nearest supported samplerate. + * Supported samplerates are: 120 - 64 - 32 - 16 - 8 - 4 - 2 - 1 samples/second. + * + * @param samplerate - the samplerate that will be set + */ + void setSampleRate(int samplerate); + + /** + * Returns which side is pointing down + * + * @param return - Orientation which is closest to down + */ + Orientation getGlobalOrientation( void ); + + /** + * Returns if it is on its front, back, or unknown side + * + * This is read from MMA7760s registers, page 12 of datasheet + * + * @param return - Front, Back or Unknown orientation + */ + Orientation getSide( void ); + + /** + * Returns if it is on it left, right, down or up side + * + * This is read from MMA7760s registers, page 12 of datasheet + * + * @param return - Left, Right, Down, Up or Unknown orientation + */ + Orientation getOrientation ( void ); + + /** + * Returns if since last check there has been a tap + * + * @param return - bool that is true when a tap has been detected + */ + bool isTapped( void ); + private: /** - * Writes data to the device, could be private, but public is handy so you can transmit directly to the MPU. + * Writes data to the device * * @param adress - register address to write to * @param data - data to write @@ -84,7 +147,7 @@ void write( char address, char data); /** - * Read data from the device, could be private, but public is handy so you can transmit directly to the MPU. + * Read data from the device * * @param adress - register address to write to * @return - data from the register specified by RA