Fork
Dependents: BG96_K6xF_pelion-example-frdm BG96_K6xF_pelion-example-frdm_Temp
FXAS21002.h
- Committer:
- Rhyme
- Date:
- 2016-07-22
- Revision:
- 0:2741e9e34e8a
File content as of revision 0:2741e9e34e8a:
/**
* FXAS21002
* 3-Axis Digital Angular Rate Gyroscope
*/
#ifndef FXAS21002_H
#define FXAS21002_H
#include "mbed.h"
/**
*
*
* @code
#include "mbed.h"
#include "FXAS21002.h"
#define FXAS21002_I2C_ADDRESS (0x20)
#if defined (TARGET_KL25Z)
#define PIN_SCL PTE1
#define PIN_SDA PTE0
#elif defined (TARGET_KL46Z)
#define PIN_SCL PTE1
#define PIN_SDA PTE0
#elif defined (TARGET_K64F)
#define PIN_SCL PTE24
#define PIN_SDA PTE25
#elif defined (TARGET_K22F)
#define PIN_SCL PTE1
#define PIN_SDA PTE0
#elif defined (TARGET_KL05Z)
#define PIN_SCL PTB3
#define PIN_SDA PTB4
#elif defined (TARGET_NUCLEO_F411RE)
#define PIN_SCL PB_8
#define PIN_SDA PB_9
#else
#error TARGET NOT DEFINED
#endif
int main() {
uint16_t result = 0 ;
int16_t temperature = 0 ;
FXAS21002 FXAS21002(PIN_SDA, PIN_SCL, FXAS21002_I2C_ADDRESS) ;
while(1) {
result = FXAS21002.getValue(&temperature) ;
printf("Temp %d C\n", temperature) ;
wait(1) ;
}
}
* @endcode
*/
class FXAS21002
{
public:
/**
* FXAS21002 constructor
*
* @param sda SDA pin
* @param sdl SCL pin
* @param addr addr of the I2C peripheral
*/
FXAS21002(PinName sda, PinName scl, int addr);
/**
* FXAS21002 destructor
*/
~FXAS21002();
/**
* status register
*/
uint8_t getStatus(void) ;
/**
* getX returns the value of
* REG_OUT_X_MSB
* REG_OUT_X_LSB
* as a signed 16bit integer
*/
int16_t getX(void) ;
/**
* getY returns the value of
* REG_OUT_Y_MSB
* REG_OUT_Y_LSB
* as a signed 16bit integer
*/
int16_t getY(void) ;
/**
* getZ returns the value of
* REG_OUT_Z_MSB
* REG_OUT_Z_LSB
* as a signed 16bit integer
*/
int16_t getZ(void) ;
/**
* activate/deactivate the sensor
*
* @param mode true: Active false: Standby
*/
void activate(bool mode) ;
/**
* Self-Test enable
*
* @param mode true: Self-Test enabled, false: Self-Test disabled
*/
void selftest(bool mode) ;
/**
* Standby/Ready mode selection
*
* @param mode true: Ready, false: Standby
*/
void ready(bool mode) ;
/**
* get value of CTRL_REG1
*/
uint8_t getCTRL1(void) ;
/**
* set value to CTRL_REG1
*
* @param value value for CTRL_REG1
*/
void setCTRL1(uint8_t value) ;
/**
* get value of CTRL_REG2
*/
uint8_t getCTRL2(void) ;
/**
* set value to CTRL_REG2
*
* @param value value for CTRL_REG2
*/
void setCTRL2(uint8_t value) ;
/**
* get value of CTRL_REG3
*/
uint8_t getCTRL3(void) ;
/**
* set value to CTRL_REG3
*
* @param value value for CTRL_REG3
*/
void setCTRL3(uint8_t value) ;
private:
I2C m_i2c;
int m_addr;
void readRegs(int addr, uint8_t * data, int len);
void writeRegs(uint8_t * data, int len);
};
#endif
Daniel Lee