Alora Library
Library for using Alora shield
 All Classes Namespaces Files Functions Variables Macros Pages
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
LSM9DS1 Class Reference

Public Member Functions

 LSM9DS1 (interface_mode interface, uint8_t xgAddr, uint8_t mAddr)
 
uint16_t begin ()
 
void calibrate (bool autoCalc=true)
 
void calibrateMag (bool loadIn=true)
 
void magOffset (uint8_t axis, int16_t offset)
 
uint8_t accelAvailable ()
 
uint8_t gyroAvailable ()
 
uint8_t tempAvailable ()
 
uint8_t magAvailable (lsm9ds1_axis axis=ALL_AXIS)
 
void readGyro ()
 
int16_t readGyro (lsm9ds1_axis axis)
 
void readAccel ()
 
int16_t readAccel (lsm9ds1_axis axis)
 
void readMag ()
 
int16_t readMag (lsm9ds1_axis axis)
 
void readTemp ()
 
float calcGyro (int16_t gyro)
 
float calcAccel (int16_t accel)
 
float calcMag (int16_t mag)
 
void setGyroScale (uint16_t gScl)
 
void setAccelScale (uint8_t aScl)
 
void setMagScale (uint8_t mScl)
 
void setGyroODR (uint8_t gRate)
 
void setAccelODR (uint8_t aRate)
 
void setMagODR (uint8_t mRate)
 
void configInactivity (uint8_t duration, uint8_t threshold, bool sleepOn)
 
void configAccelInt (uint8_t generator, bool andInterrupts=false)
 
void configAccelThs (uint8_t threshold, lsm9ds1_axis axis, uint8_t duration=0, bool wait=0)
 
void configGyroInt (uint8_t generator, bool aoi, bool latch)
 
void configGyroThs (int16_t threshold, lsm9ds1_axis axis, uint8_t duration, bool wait)
 
void configInt (interrupt_select interupt, uint8_t generator, h_lactive activeLow=INT_ACTIVE_LOW, pp_od pushPull=INT_PUSH_PULL)
 
void configMagInt (uint8_t generator, h_lactive activeLow, bool latch=true)
 
void configMagThs (uint16_t threshold)
 
uint8_t getGyroIntSrc ()
 
uint8_t getAccelIntSrc ()
 
uint8_t getMagIntSrc ()
 
uint8_t getInactivity ()
 
void sleepGyro (bool enable=true)
 
void enableFIFO (bool enable=true)
 
void setFIFO (fifoMode_type fifoMode, uint8_t fifoThs)
 
uint8_t getFIFOSamples ()
 

Public Attributes

IMUSettings settings
 
int16_t gx
 
int16_t gy
 
int16_t gz
 
int16_t ax
 
int16_t ay
 
int16_t az
 
int16_t mx
 
int16_t my
 
int16_t mz
 
int16_t temperature
 
float gBias [3]
 
float aBias [3]
 
float mBias [3]
 
int16_t gBiasRaw [3]
 
int16_t aBiasRaw [3]
 
int16_t mBiasRaw [3]
 

Protected Member Functions

void init (interface_mode interface, uint8_t xgAddr, uint8_t mAddr)
 
void initGyro ()
 
void initAccel ()
 
void initMag ()
 
uint8_t mReadByte (uint8_t subAddress)
 
uint8_t mReadBytes (uint8_t subAddress, uint8_t *dest, uint8_t count)
 
void mWriteByte (uint8_t subAddress, uint8_t data)
 
uint8_t xgReadByte (uint8_t subAddress)
 
uint8_t xgReadBytes (uint8_t subAddress, uint8_t *dest, uint8_t count)
 
void xgWriteByte (uint8_t subAddress, uint8_t data)
 
void calcgRes ()
 
void calcmRes ()
 
void calcaRes ()
 
void constrainScales ()
 
void initSPI ()
 
void SPIwriteByte (uint8_t csPin, uint8_t subAddress, uint8_t data)
 
uint8_t SPIreadByte (uint8_t csPin, uint8_t subAddress)
 
uint8_t SPIreadBytes (uint8_t csPin, uint8_t subAddress, uint8_t *dest, uint8_t count)
 
void initI2C ()
 
void I2CwriteByte (uint8_t address, uint8_t subAddress, uint8_t data)
 
uint8_t I2CreadByte (uint8_t address, uint8_t subAddress)
 
uint8_t I2CreadBytes (uint8_t address, uint8_t subAddress, uint8_t *dest, uint8_t count)
 

Protected Attributes

uint8_t _mAddress
 
uint8_t _xgAddress
 
float gRes
 
float aRes
 
float mRes
 
bool _autoCalc
 

Member Function Documentation

uint16_t LSM9DS1::begin ( void  )

Todo: don't use _xgAddress or _mAddress, duplicating memory


The documentation for this class was generated from the following files: