78#define MODE_ACTIVE_SHIFT             (0U) 
   79#define MODE_AUTOWAKE_SHIFT           (3U) 
   80#define MODE_AUTOSLEEP_SHIFT          (4U) 
   81#define MODE_PRESCALE_SHIFT           (5U) 
   82#define MODE_INTERRUPT_DEFAULT        (0x40)  
   84#define MMA7660_INTSOURCE_NONE        (0x00) 
   85#define MMA7660_INTSOURCE_FB          (0x01) 
   86#define MMA7660_INTSOURCE_UDLR        (0x02) 
   87#define MMA7660_INTSOURCE_TAP         (0x04) 
   88#define MMA7660_INTSOURCE_AUTOSLEEP   (0x08) 
   89#define MMA7660_INTSOURCE_MEASURE     (0x10) 
   90#define MMA7660_INTSOURCE_SHX         (0x20) 
   91#define MMA7660_INTSOURCE_SHY         (0x40) 
   92#define MMA7660_INTSOURCE_SHZ         (0x80) 
   94#define MMA7660_SR_AMPD               (0x00) 
   95#define MMA7660_SR_AM64               (0x01) 
   96#define MMA7660_SR_AM32               (0x02) 
   97#define MMA7660_SR_AM16               (0x03) 
   98#define MMA7660_SR_AM8                (0x04) 
   99#define MMA7660_SR_AM4                (0x05) 
  100#define MMA7660_SR_AM2                (0x06) 
  101#define MMA7660_SR_AM1                (0x07) 
  102#define MMA7660_SR_AW32               (0x00) 
  103#define MMA7660_SR_AW16               (0x08) 
  104#define MMA7660_SR_AW8                (0x10) 
  105#define MMA7660_SR_AW1                (0x18) 
  106#define MMA7660_PDET_X                (0x20) 
  107#define MMA7660_PDET_Y                (0x40) 
  108#define MMA7660_PDET_Z                (0x80) 
  110#define MMA7660_ADDR                  (0x4C) 
  115#define MMA7660_MG_PER_COUNT          (47U) 
  146                     uint8_t autowake, uint8_t autosleep, uint8_t prescale);
 
int mma7660_read_tilt(const mma7660_t *dev, uint8_t *res)
Read the tilt register.
 
int mma7660_config_samplerate(const mma7660_t *dev, uint8_t amsr, uint8_t awsr, uint8_t filt)
Configure the sample rate.
 
int mma7660_set_mode(const mma7660_t *dev, uint8_t active, uint8_t autowake, uint8_t autosleep, uint8_t prescale)
Set the mode register.
 
int mma7660_read_counts(const mma7660_t *dev, int8_t *x, int8_t *y, int8_t *z)
Read the acceleration counts (unconverted)
 
int mma7660_init(mma7660_t *dev, const mma7660_params_t *params)
Initialize an MMA7660 device.
 
int mma7660_read(const mma7660_t *dev, mma7660_data_t *data)
Read the acceleration counts converted to mG.
 
int mma7660_write_sleep_count(const mma7660_t *dev, uint8_t sleep)
Write the sleep count register.
 
int mma7660_config_pd(const mma7660_t *dev, uint8_t pd)
Configure the tap detection debounce count.
 
int mma7660_config_pdet(const mma7660_t *dev, uint8_t pdth, uint8_t enabled_axes)
Configure the tap detection.
 
int mma7660_config_interrupts(const mma7660_t *dev, uint8_t isource_flags)
Configure the interrupt sources.
 
@ MMA7660_READ_ERR
error when reading counts
 
@ MMA7660_I2C_WRITE_ERR
i2c bus cannot be written
 
@ MMA7660_I2C_ERR
i2c bus initialization error
 
@ MMA7660_I2C_READ_ERR
i2c bus cannot be read
 
uint_fast8_t i2c_t
Default i2c_t type definition.
 
Low-level I2C peripheral driver interface definition.
 
Data type for the result data.
 
int16_t x
acceleration in X direction
 
int16_t y
acceleration in Y direction
 
int16_t z
acceleration in Z direction
 
Parameters for an MMA7660 device.
 
uint8_t amsr
active mode sample rate
 
uint8_t addr
the device I2C address
 
uint8_t awsr
auto wake sample rate
 
uint8_t filt
filter samples
 
Device descriptor for an MMA7660 device.
 
mma7660_params_t params
initialization parameters