Driver for the Freescale MMA7660 3-Axis accelerometer.  
More...
Driver for the Freescale MMA7660 3-Axis accelerometer. 
This driver only implements basic functionality. 
 | 
| file   | mma7660.h | 
|   | Interface definition for the MMA7660 accelerometer driver. 
  | 
|   | 
| file   | mma7660_params.h | 
|   | Default configuration for MMA7660 accelerometer. 
  | 
|   | 
| file   | mma7660_reg.h | 
|   | Register definition for the MMA7660 accelerometer driver. 
  | 
|   | 
 | 
| int  | mma7660_init (mma7660_t *dev, const mma7660_params_t *params) | 
|   | Initialize an MMA7660 device.  More...
  | 
|   | 
| int  | mma7660_set_mode (const mma7660_t *dev, uint8_t active, uint8_t autowake, uint8_t autosleep, uint8_t prescale) | 
|   | Set the mode register.  More...
  | 
|   | 
| int  | mma7660_read_tilt (const mma7660_t *dev, uint8_t *res) | 
|   | Read the tilt register.  More...
  | 
|   | 
| int  | mma7660_write_sleep_count (const mma7660_t *dev, uint8_t sleep) | 
|   | Write the sleep count register.  More...
  | 
|   | 
| int  | mma7660_config_interrupts (const mma7660_t *dev, uint8_t isource_flags) | 
|   | Configure the interrupt sources.  More...
  | 
|   | 
| int  | mma7660_config_samplerate (const mma7660_t *dev, uint8_t amsr, uint8_t awsr, uint8_t filt) | 
|   | Configure the sample rate.  More...
  | 
|   | 
| int  | mma7660_config_pdet (const mma7660_t *dev, uint8_t pdth, uint8_t enabled_axes) | 
|   | Configure the tap detection.  More...
  | 
|   | 
| int  | mma7660_config_pd (const mma7660_t *dev, uint8_t pd) | 
|   | Configure the tap detection debounce count.  More...
  | 
|   | 
| int  | mma7660_read (const mma7660_t *dev, mma7660_data_t *data) | 
|   | Read the acceleration counts converted to mG.  More...
  | 
|   | 
| int  | mma7660_read_counts (const mma7660_t *dev, int8_t *x, int8_t *y, int8_t *z) | 
|   | Read the acceleration counts (unconverted)  More...
  | 
|   | 
 | 
| 
#define  | MODE_ACTIVE_SHIFT   (0U) | 
|   | 
| 
#define  | MODE_AUTOWAKE_SHIFT   (3U) | 
|   | 
| 
#define  | MODE_AUTOSLEEP_SHIFT   (4U) | 
|   | 
| 
#define  | MODE_PRESCALE_SHIFT   (5U) | 
|   | 
| 
#define  | MODE_INTERRUPT_DEFAULT   (0x40) /* Active low, push-pull */ | 
|   | 
| 
#define  | MMA7660_INTSOURCE_NONE   (0x00) | 
|   | 
| 
#define  | MMA7660_INTSOURCE_FB   (0x01) | 
|   | 
| 
#define  | MMA7660_INTSOURCE_UDLR   (0x02) | 
|   | 
| 
#define  | MMA7660_INTSOURCE_TAP   (0x04) | 
|   | 
| 
#define  | MMA7660_INTSOURCE_AUTOSLEEP   (0x08) | 
|   | 
| 
#define  | MMA7660_INTSOURCE_MEASURE   (0x10) | 
|   | 
| 
#define  | MMA7660_INTSOURCE_SHX   (0x20) | 
|   | 
| 
#define  | MMA7660_INTSOURCE_SHY   (0x40) | 
|   | 
| 
#define  | MMA7660_INTSOURCE_SHZ   (0x80) | 
|   | 
| 
#define  | MMA7660_SR_AMPD   (0x00) | 
|   | 
| 
#define  | MMA7660_SR_AM64   (0x01) | 
|   | 
| 
#define  | MMA7660_SR_AM32   (0x02) | 
|   | 
| 
#define  | MMA7660_SR_AM16   (0x03) | 
|   | 
| 
#define  | MMA7660_SR_AM8   (0x04) | 
|   | 
| 
#define  | MMA7660_SR_AM4   (0x05) | 
|   | 
| 
#define  | MMA7660_SR_AM2   (0x06) | 
|   | 
| 
#define  | MMA7660_SR_AM1   (0x07) | 
|   | 
| 
#define  | MMA7660_SR_AW32   (0x00) | 
|   | 
| 
#define  | MMA7660_SR_AW16   (0x08) | 
|   | 
| 
#define  | MMA7660_SR_AW8   (0x10) | 
|   | 
| 
#define  | MMA7660_SR_AW1   (0x18) | 
|   | 
| 
#define  | MMA7660_PDET_X   (0x20) | 
|   | 
| 
#define  | MMA7660_PDET_Y   (0x40) | 
|   | 
| 
#define  | MMA7660_PDET_Z   (0x80) | 
|   | 
| 
#define  | MMA7660_ADDR   (0x4C) | 
|   | 
| 
#define  | MMA7660_MG_PER_COUNT   (47U) | 
|   | 
◆ anonymous enum
Return codes. 
| Enumerator | 
|---|
| MMA7660_OK  | all ok  
 | 
| MMA7660_I2C_ERR  | i2c bus initialization error  
 | 
| MMA7660_I2C_READ_ERR  | i2c bus cannot be read  
 | 
| MMA7660_I2C_WRITE_ERR  | i2c bus cannot be written  
 | 
| MMA7660_READ_ERR  | error when reading counts  
 | 
Definition at line 37 of file mma7660.h.
 
 
◆ mma7660_config_interrupts()
      
        
          | int mma7660_config_interrupts  | 
          ( | 
          const mma7660_t *  | 
          dev,  | 
        
        
           | 
           | 
          uint8_t  | 
          isource_flags  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Configure the interrupt sources. 
- Parameters
 - 
  
    | [in] | dev | device descriptor  | 
    | [in] | isource_flags | interrupt source flags | 
  
   
- Returns
 - MMA7660_OK on success 
 
- 
-MMA7660_I2C_WRITE_ERR on i2c bus write error 
 
 
 
◆ mma7660_config_pd()
      
        
          | int mma7660_config_pd  | 
          ( | 
          const mma7660_t *  | 
          dev,  | 
        
        
           | 
           | 
          uint8_t  | 
          pd  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ mma7660_config_pdet()
      
        
          | int mma7660_config_pdet  | 
          ( | 
          const mma7660_t *  | 
          dev,  | 
        
        
           | 
           | 
          uint8_t  | 
          pdth,  | 
        
        
           | 
           | 
          uint8_t  | 
          enabled_axes  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ mma7660_config_samplerate()
      
        
          | int mma7660_config_samplerate  | 
          ( | 
          const mma7660_t *  | 
          dev,  | 
        
        
           | 
           | 
          uint8_t  | 
          amsr,  | 
        
        
           | 
           | 
          uint8_t  | 
          awsr,  | 
        
        
           | 
           | 
          uint8_t  | 
          filt  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Configure the sample rate. 
- Parameters
 - 
  
    | [in] | dev | device descriptor  | 
    | [in] | amsr | active mode sample rate (pg 18 of DS)  | 
    | [in] | awsr | auto wake sample rate (pg 19 of DS)  | 
    | [in] | filt | filter samples (pg 19 of DS) | 
  
   
See datasheet http://www.nxp.com/files/sensors/doc/data_sheet/MMA7660FC.pdf for details about the parameters
- Returns
 - MMA7660_OK on success 
 
- 
-MMA7660_I2C_WRITE_ERR on i2c bus write error 
 
 
 
◆ mma7660_init()
Initialize an MMA7660 device. 
- Parameters
 - 
  
    | [out] | dev | device descriptor  | 
    | [in] | params | device configuration parameters | 
  
   
- Returns
 - MMA7660_OK on success 
 
- 
-MMA7660_I2C_ERR on i2c bus initialization error 
 
- 
-MMA7660_I2C_WRITE_ERR on i2c bus write error 
 
 
 
◆ mma7660_read()
Read the acceleration counts converted to mG. 
- Parameters
 - 
  
    | [in] | dev | device descriptor  | 
    | [out] | data | the acceleration data | 
  
   
- Returns
 - MMA7660_OK on success 
 
- 
-MMA7660_I2C_READ_ERR on i2c bus read error 
 
 
 
◆ mma7660_read_counts()
      
        
          | int mma7660_read_counts  | 
          ( | 
          const mma7660_t *  | 
          dev,  | 
        
        
           | 
           | 
          int8_t *  | 
          x,  | 
        
        
           | 
           | 
          int8_t *  | 
          y,  | 
        
        
           | 
           | 
          int8_t *  | 
          z  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Read the acceleration counts (unconverted) 
- Parameters
 - 
  
    | [in] | dev | device descriptor  | 
    | [out] | x | the X axis value  | 
    | [out] | y | the Y axis value  | 
    | [out] | z | the Z axis value | 
  
   
See page 28 of http://www.nxp.com/files/sensors/doc/data_sheet/MMA7660FC.pdf for conversion of acceleration counts to angles or G forces.
- Returns
 - MMA7660_OK on success 
 
- 
-MMA7660_I2C_READ_ERR on i2c bus read error 
 
- 
-MMA7660_READ_ERR on general read error 
 
 
 
◆ mma7660_read_tilt()
      
        
          | int mma7660_read_tilt  | 
          ( | 
          const mma7660_t *  | 
          dev,  | 
        
        
           | 
           | 
          uint8_t *  | 
          res  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Read the tilt register. 
- Parameters
 - 
  
    | [in] | dev | device descriptor  | 
    | [out] | res | tilt register contents | 
  
   
- Returns
 - MMA7660_OK on success 
 
- 
-MMA7660_I2C_READ_ERR on i2c bus read error 
 
 
 
◆ mma7660_set_mode()
      
        
          | int mma7660_set_mode  | 
          ( | 
          const mma7660_t *  | 
          dev,  | 
        
        
           | 
           | 
          uint8_t  | 
          active,  | 
        
        
           | 
           | 
          uint8_t  | 
          autowake,  | 
        
        
           | 
           | 
          uint8_t  | 
          autosleep,  | 
        
        
           | 
           | 
          uint8_t  | 
          prescale  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Set the mode register. 
- Parameters
 - 
  
    | [in] | dev | device descriptor  | 
    | [in] | active | 0=sleep 1=active  | 
    | [in] | autowake | see datasheet  | 
    | [in] | autosleep | see datasheet  | 
    | [in] | prescale | main clock prescalar | 
  
   
See page 17 of http://www.nxp.com/files/sensors/doc/data_sheet/MMA7660FC.pdf for information about the parameters
- Returns
 - MMA7660_OK on success 
 
- 
-MMA7660_I2C_WRITE_ERR on i2c bus write error 
 
 
 
◆ mma7660_write_sleep_count()
      
        
          | int mma7660_write_sleep_count  | 
          ( | 
          const mma7660_t *  | 
          dev,  | 
        
        
           | 
           | 
          uint8_t  | 
          sleep  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Write the sleep count register. 
- Parameters
 - 
  
    | [in] | dev | device descriptor  | 
    | [in] | sleep | sleep count | 
  
   
- Returns
 - MMA7660_OK on success 
 
- 
-MMA7660_I2C_WRITE_ERR on i2c bus write error