i2c trial - does'nt work

Dependencies:   ACD_ePaper aconno_I2C aconno_bsp mbed

Fork of acd52832_LSM9DS1 by Jurica Resetar

LSM9DS1/LSM9DS1.h

Committer:
med2017
Date:
2018-02-14
Revision:
1:e97c56fb9629

File content as of revision 1:e97c56fb9629:


 
#ifndef LSM9DS1_H
#define LSM9DS1_H

#include "mbed.h"
#include "aconno_i2c.h"
#include "LSM9DS1_regs.h"
#include "LSM9DS1_defVals.h"


//TO DO: once i2c sucessfully works come back to this for fine tuning data



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 LSM9DS1{
    public:
        LSM9DS1(I2C *i2c_, char address);
        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();

/*        
    public:
        LSM9DS1(I2C i2c);
        void startMag(void);
        void readMag(int16_t *results);
        void startAcc(void);
        void readAcc(int16_t *results);
        void startGyro(void);
        void readGyro(int16_t *results);    
   */ 
    private:
        aconno_i2c i2c;
         
};


#endif