FreeIMU Library
Open Hardware Framework for Motion Sensing
 All Data Structures Files Functions Variables Macros
Data Structures | Macros | Functions
FreeIMU.h File Reference
#include <Wire.h>
#include "Arduino.h"
#include <ADXL345.h>
#include <MS561101BA.h>
#include <ITG3200.h>
#include <HMC58X3.h>

Go to the source code of this file.

Data Structures

class  FreeIMU

Macros

#define FREEIMU_v04
#define HAS_ITG3200()   (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP) || defined(SEN_10121) || defined(SEN_10736) || defined(SEN_10724) || defined(SEN_10183))
#define HAS_ADXL345()   (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(SEN_10121) || defined(SEN_10736) || defined(SEN_10724) || defined(SEN_10183))
#define HAS_BMA180()   (defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP))
#define HAS_MPU6050()   (defined(FREEIMU_v04))
#define HAS_MS5611()   (defined(FREEIMU_v035_MS) || defined(FREEIMU_v04))
#define HAS_HMC5883L()   (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP) || defined(FREEIMU_v04) || defined(SEN_10736) || defined(SEN_10724) || defined(SEN_10183))
#define IS_6DOM()   (defined(SEN_10121))
#define IS_9DOM()   (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP) || defined(FREEIMU_v04) || defined(SEN_10736) || defined(SEN_10724) || defined(SEN_10183))
#define HAS_AXIS_ALIGNED()   (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP) || defined(FREEIMU_v04) || defined(SEN_10121) || defined(SEN_10736))
#define FIMU_ACC_ADDR   ADXL345_ADDR_ALT_LOW
#define FIMU_BARO_ADDR   MS561101BA_ADDR_CSB_LOW
#define FIMU_BMA180_DEF_ADDR   BMA180_ADDRESS_SDO_LOW
#define FIMU_ITG3200_DEF_ADDR   ITG3200_ADDR_AD0_LOW
#define twoKpDef   (2.0f * 0.5f)
#define twoKiDef   (2.0f * 0.1f)
#define cbi(sfr, bit)   (_SFR_BYTE(sfr) &= ~_BV(bit))

Functions

float invSqrt (float number)
void arr3_rad_to_deg (float *arr)

Macro Definition Documentation

#define cbi (   sfr,
  bit 
)    (_SFR_BYTE(sfr) &= ~_BV(bit))
#define FIMU_ACC_ADDR   ADXL345_ADDR_ALT_LOW
#define FIMU_BARO_ADDR   MS561101BA_ADDR_CSB_LOW
#define FIMU_BMA180_DEF_ADDR   BMA180_ADDRESS_SDO_LOW
#define FIMU_ITG3200_DEF_ADDR   ITG3200_ADDR_AD0_LOW
#define FREEIMU_v04
#define HAS_ADXL345 ( )    (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(SEN_10121) || defined(SEN_10736) || defined(SEN_10724) || defined(SEN_10183))
#define HAS_AXIS_ALIGNED ( )    (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP) || defined(FREEIMU_v04) || defined(SEN_10121) || defined(SEN_10736))
#define HAS_BMA180 ( )    (defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP))
#define HAS_HMC5883L ( )    (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP) || defined(FREEIMU_v04) || defined(SEN_10736) || defined(SEN_10724) || defined(SEN_10183))
#define HAS_ITG3200 ( )    (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP) || defined(SEN_10121) || defined(SEN_10736) || defined(SEN_10724) || defined(SEN_10183))
#define HAS_MPU6050 ( )    (defined(FREEIMU_v04))
#define HAS_MS5611 ( )    (defined(FREEIMU_v035_MS) || defined(FREEIMU_v04))
#define IS_6DOM ( )    (defined(SEN_10121))
#define IS_9DOM ( )    (defined(FREEIMU_v01) || defined(FREEIMU_v02) || defined(FREEIMU_v03) || defined(FREEIMU_v035) || defined(FREEIMU_v035_MS) || defined(FREEIMU_v035_BMP) || defined(FREEIMU_v04) || defined(SEN_10736) || defined(SEN_10724) || defined(SEN_10183))
#define twoKiDef   (2.0f * 0.1f)
#define twoKpDef   (2.0f * 0.5f)

Function Documentation

void arr3_rad_to_deg ( float *  arr)

Converts a 3 elements array arr of angles expressed in radians into degrees

float invSqrt ( float  number)

Fast inverse square root implementation

See Also
http://en.wikipedia.org/wiki/Fast_inverse_square_root