upm
0.5.1
Sensor/Actuator repository for libmraa (v0.9.1)
|
API for the MMA7660 I2C 3-Axis Digital Accelerometer. More...
UPM module for the MMA7660 I2C 3-axis digital accelerometer. This device supports a variety of capabilities, including the generation of interrupts for various conditions, tilt and basic gesture detection, and X/Y/Z-axis measurements of g-forces being applied (up to 1.5g)
This module was tested with the Grove 3-Axis Digital Accelerometer (1.5g)
Public Member Functions | |
MMA7660 (int bus, uint8_t address=MMA7660_DEFAULT_I2C_ADDR) | |
~MMA7660 () | |
bool | writeByte (uint8_t reg, uint8_t byte) |
uint8_t | readByte (uint8_t reg) |
void | getRawValues (int *x, int *y, int *z) |
void | getAcceleration (float *ax, float *ay, float *az) |
int | getVerifiedAxis (MMA7660_REG_T axis) |
uint8_t | getVerifiedTilt () |
void | setModeActive () |
void | setModeStandby () |
uint8_t | tiltBackFront () |
uint8_t | tiltLandscapePortrait () |
bool | tiltTap () |
bool | tiltShake () |
void | installISR (int pin, void(*isr)(void *), void *arg) |
void | uninstallISR () |
bool | setInterruptBits (uint8_t ibits) |
bool | setSampleRate (MMA7660_AUTOSLEEP_T sr) |
MMA7660 | ( | int | bus, |
uint8_t | address = MMA7660_DEFAULT_I2C_ADDR |
||
) |
MMA7660 constructor
bus | I2C bus to use |
address | Address for this sensor; default is 0x55 |
bool writeByte | ( | uint8_t | reg, |
uint8_t | byte | ||
) |
Writes a byte value into a register
reg | Register location to write into |
byte | Byte to write |
uint8_t readByte | ( | uint8_t | reg | ) |
Reads a byte value from a register
reg | Register location to read from |
void getRawValues | ( | int * | x, |
int * | y, | ||
int * | z | ||
) |
Reads the current value of conversion
x | Returned x value |
y | Returned y value |
z | Returned z value |
void getAcceleration | ( | float * | ax, |
float * | ay, | ||
float * | az | ||
) |
Gets the computed acceleration
ax | Returned computed acceleration of the X-axis |
ay | Returned computed acceleration of the Y-axis |
az | Returned computed acceleration of the Z-axis |
int getVerifiedAxis | ( | MMA7660_REG_T | axis | ) |
Reads an axis, verifying its validity. The value passed must be one of REG_XOUT, REG_YOUT, or REG_ZOUT.
axis | Axis to read |
uint8_t getVerifiedTilt | ( | ) |
Reads the tilt register, verifying its validity
void setModeActive | ( | ) |
Puts the device in the active mode. In this mode, register writes are not allowed. Place the device in the standby mode before attempting to write registers.
void setModeStandby | ( | ) |
Puts the device in the standby (power saving) mode. Note: when in the standby mode, there is no valid data in the registers. In addition, the only way to write a register is to put the device in the standby mode.
uint8_t tiltBackFront | ( | ) |
Reads tiltBackFront bits
The value returned is one of the MMA7660_TILT_BF_T values
uint8_t tiltLandscapePortrait | ( | ) |
Reads tiltLandscapePortrait bits
The value returned is one of the MMA7660_TILT_LP_T values
bool tiltTap | ( | ) |
Reads the tiltTap status
bool tiltShake | ( | ) |
Reads the tiltShake status
void installISR | ( | int | pin, |
void(*)(void *) | isr, | ||
void * | arg | ||
) |
Installs an interrupt service routine (ISR) to be called when an interrupt occurs
pin | GPIO pin to use as the interrupt pin |
fptr | Pointer to a function to be called on interrupt |
arg | Pointer to an object to be supplied as an argument to the ISR. |
void uninstallISR | ( | ) |
Uninstalls the previously installed ISR
bool setInterruptBits | ( | uint8_t | ibits | ) |
Enables interrupt generation based on passed interrupt bits. The bits are a bitmask of the requested MMA7660_INTR_T values. Note: the device must be in the standby mode to set this register.
ibits | Sets the requested interrupt bits |
bool setSampleRate | ( | MMA7660_AUTOSLEEP_T | sr | ) |
Sets the sampling rate of the sensor. The value supplied must be one of the MMA7660_AUTOSLEEP_T values.
sr | One of the MMA7660_AUTOSLEEP_T values |