28 #include <mraa/gpio.h>
30 #define MMA7660_I2C_BUS 0
31 #define MMA7660_DEFAULT_I2C_ADDR 0x4c
65 typedef enum { REG_XOUT = 0x00,
80 typedef enum { INTR_NONE = 0x00,
92 typedef enum { MODE_MODE = 0x01,
103 typedef enum { BF_UNKNOWN = 0x00,
104 BF_LYING_FRONT = 0x01,
109 typedef enum { LP_UNKNOWN = 0x00,
110 LP_LANDSCAPE_LEFT = 0x01,
111 LP_LANDSCAPE_RIGHT = 0x02,
117 typedef enum { AUTOSLEEP_120 = 0x00,
125 } MMA7660_AUTOSLEEP_T;
133 MMA7660(
int bus, uint8_t address = MMA7660_DEFAULT_I2C_ADDR);
147 bool writeByte(uint8_t reg, uint8_t byte);
249 void installISR(
int pin,
void (*isr)(
void *),
void *arg);
278 mraa_i2c_context m_i2c;
279 mraa_gpio_context m_gpio;
bool writeByte(uint8_t reg, uint8_t byte)
Definition: mma7660.cxx:65
void setModeStandby()
Definition: mma7660.cxx:103
void installISR(int pin, void(*isr)(void *), void *arg)
Definition: mma7660.cxx:198
bool tiltTap()
Definition: mma7660.cxx:178
C++ API for the MMA7660 I2C 3-axis digital accelerometer.
Definition: mma7660.h:61
bool setSampleRate(MMA7660_AUTOSLEEP_T sr)
Definition: mma7660.cxx:232
bool tiltShake()
Definition: mma7660.cxx:188
bool setInterruptBits(uint8_t ibits)
Definition: mma7660.cxx:227
void setModeActive()
Definition: mma7660.cxx:91
void getRawValues(int *x, int *y, int *z)
Definition: mma7660.cxx:84
uint8_t readByte(uint8_t reg)
Definition: mma7660.cxx:79
uint8_t tiltBackFront()
Definition: mma7660.cxx:159
uint8_t tiltLandscapePortrait()
Definition: mma7660.cxx:168
uint8_t getVerifiedTilt()
Definition: mma7660.cxx:142
void getAcceleration(float *ax, float *ay, float *az)
Definition: mma7660.cxx:237
void uninstallISR()
Definition: mma7660.cxx:217
int getVerifiedAxis(MMA7660_REG_T axis)
Definition: mma7660.cxx:116
~MMA7660()
Definition: mma7660.cxx:56
MMA7660(int bus, uint8_t address=MMA7660_DEFAULT_I2C_ADDR)
Definition: mma7660.cxx:34