danny hack

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Lis2dh12.h Source File

Lis2dh12.h

00001 /*
00002  *
00003  *  LIS2DH12 MEMS digital output motion sensor
00004  *  More info @ aconno.de
00005  *  Made by Jurica Resetar
00006  *  jurica_resetar@yahoo.com
00007  *
00008  */
00009 
00010 #ifndef LIS2DH12_H
00011 #define LIS2DH12_H
00012 
00013 #include "mbed.h"
00014 #include "aconno_i2c.h"
00015 #include "Lis2dh12_regs.h"
00016 
00017 enum Mode{
00018     HIGH_RES = 0,
00019     NORMAL,
00020     LOW_POWER,
00021 };
00022 
00023 enum Axis{
00024     X_axis = 0x01,
00025     Y_axis = 0x02,
00026     Z_axis = 0x04,
00027 };
00028 
00029 enum Odr{
00030     PowerDown = 0x00,
00031     ODR_1Hz = 0x01,
00032     ODR_10Hz = 0x02,
00033     ODR_25Hz = 0x03,
00034     ODR_50Hz = 0x04,
00035     ODR_100Hz = 0x05,
00036     ODR_200Hz = 0x06,
00037     ODR_400Hz = 0x07,
00038     ODR_1620Hz = 0x08,
00039     ODR_Max = 0x09,         // HighRes/Normal -> 1.344kHz, LowPower -> 5.376kHz
00040 };
00041 
00042 enum Scale{
00043     _2g = 0x00,
00044     _4g = 0x01,
00045     _8g = 0x02,
00046     _16g = 0x03,
00047 };
00048 
00049 class Lis2dh12{
00050     public:
00051         Lis2dh12(I2C *i2c_, char address);
00052         Lis2dh12(SPI *_spi, DigitalOut *_cs);
00053         uint8_t whoIAm();
00054         uint8_t setMode(Mode mode);
00055         uint8_t enableAxes(Axis axis);
00056         uint8_t disableAxes(Axis axis);
00057         int16_t readXAxis();
00058         int16_t readYAxis();
00059         int16_t readZAxis();
00060         uint8_t setODR(Odr odr);
00061         uint8_t setScale(Scale scale);
00062         uint8_t int1Setup(uint8_t setup);
00063         uint8_t int1Latch(uint8_t enable);
00064         uint8_t int1Duration(uint8_t duration);
00065         uint8_t int1Threshold(uint8_t threshold);
00066         uint8_t int1Config(uint8_t config);
00067         void clearIntFlag();
00068         
00069         uint8_t readFromReg(uint8_t regAddr, uint8_t *buff, size_t buffSize);
00070         uint8_t writeToReg(uint8_t regAddr, uint8_t *buff, size_t buffSize);
00071         
00072         aconno_i2c i2c;
00073 
00074     private:
00075         SPI *spi;
00076         DigitalOut *cs;
00077 
00078         bool spiInterface;
00079 
00080 
00081 };
00082 
00083 
00084 #endif