Library for LIS2DH12 acc.
Dependents: acnSensa_LIS aconnoCellularGnss Lizzy
Lis2dh12.h
- Committer:
- Dominik Bartolovic
- Date:
- 2018-10-15
- Revision:
- 7:f1ba533021b8
- Parent:
- 2:1fa08c7a2a3c
File content as of revision 7:f1ba533021b8:
/* * * LIS2DH12 MEMS digital output motion sensor * More info @ aconno.de * Made by Jurica Resetar * jurica_resetar@yahoo.com * */ #ifndef LIS2DH12_H #define LIS2DH12_H #include "mbed.h" #include "aconno_i2c.h" #include "Lis2dh12_regs.h" enum Mode{ HIGH_RES = 0, NORMAL, LOW_POWER, }; enum Axis{ X_axis = 0x01, Y_axis = 0x02, Z_axis = 0x04, }; enum Odr{ PowerDown = 0x00, ODR_1Hz = 0x01, ODR_10Hz = 0x02, ODR_25Hz = 0x03, ODR_50Hz = 0x04, ODR_100Hz = 0x05, ODR_200Hz = 0x06, ODR_400Hz = 0x07, ODR_1620Hz = 0x08, ODR_Max = 0x09, // HighRes/Normal -> 1.344kHz, LowPower -> 5.376kHz }; enum Scale{ _2g = 0x00, _4g = 0x01, _8g = 0x02, _16g = 0x03, }; class Lis2dh12{ public: Lis2dh12(I2C *i2c_, char address); Lis2dh12(SPI *_spi, DigitalOut *_cs); uint8_t whoIAm(); uint8_t setMode(Mode mode); uint8_t enableAxes(Axis axis); uint8_t disableAxes(Axis axis); int16_t readXAxis(); int16_t readYAxis(); int16_t readZAxis(); uint8_t setODR(Odr odr); uint8_t setScale(Scale scale); uint8_t int1Setup(uint8_t setup); uint8_t int1Latch(uint8_t enable); uint8_t int1Duration(uint8_t duration); uint8_t int1Threshold(uint8_t threshold); uint8_t int1Config(uint8_t config); void clearIntFlag(); private: aconno_i2c i2c; SPI *spi; DigitalOut *cs; bool spiInterface; uint8_t readFromReg(uint8_t regAddr, uint8_t *buff, size_t buffSize); uint8_t writeToReg(uint8_t regAddr, uint8_t *buff, size_t buffSize); }; #endif