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 MMA7660 by
MMA7660.h
- Committer:
- Sissors
- Date:
- 2012-10-14
- Revision:
- 0:7bc29a9ea016
- Child:
- 1:8997a1b348dd
File content as of revision 0:7bc29a9ea016:
#include "mbed.h" #ifndef MMA7660_H #define MMA7660_H #define MMA7660_ADDRESS 0x98 #define MMA7660_SENSITIVITY 21.33 #define MMA7660_XOUT_R 0x00 #define MMA7660_YOUT_R 0x01 #define MMA7660_ZOUT_R 0x02 #define MMA7660_MODE_R 0x07 class MMA7660 { public: /** * Creates a new MMA7660 object * * @param sda - I2C data pin * @param scl - I2C clock pin * @param interrupt - Interrupt pin (default = NC) */ MMA7660(PinName sda, PinName scl, PinName interrupt = NC); /** * Tests if communication is possible with the MMA7660 * * Because the MMA7660 lacks a WHO_AM_I register, this function can only check * if there is an I2C device that responds to the MMA7660 address * * @param return - true for successfull connection, false for no connection */ bool testConnection( void ); /** * Sets the active state of the MMA7660 * * Note: This is unrelated to awake/sleep mode * * @param state - true for active, false for standby */ void setActive( bool state); /** * Reads acceleration data from the sensor * * When the parameter is a pointer to an integer array it will be the raw data. * When it is a pointer to a float array it will be the acceleration in g's * * @param data - pointer to array with length 3 where the acceleration data will be stores, X-Y-Z */ void readData( int *data); void readData( float *data); /** Get X-data * * @param return - X-acceleration in g's */ float getX( void ); /** Get Y-data * * @param return - Y-acceleration in g's */ float getY( void ); /** Get Z-data * * @param return - Z-acceleration in g's */ float getZ( void ); private: /** * Writes data to the device, could be private, but public is handy so you can transmit directly to the MPU. * * @param adress - register address to write to * @param data - data to write */ 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. * * @param adress - register address to write to * @return - data from the register specified by RA */ char read( char adress); /** * Read multiple regigsters from the device, more efficient than using multiple normal reads. * * @param adress - register address to write to * @param length - number of bytes to read * @param data - pointer where the data needs to be written to */ void read( char adress, char *data, int length); /** * Reads single axis */ float getSingle(int number); I2C _i2c; bool active; PinName _interrupt; float samplerate; }; #endif