Matthias Grob / Mbed 2 deprecated FlyBed2

Dependencies:   mbed

Dependents:   fluy343

Committer:
maetugr
Date:
Sat Feb 15 14:28:11 2014 +0000
Revision:
4:b0a60b0b24a9
Parent:
0:12950aa67f2a
After setting MPU6050 up

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maetugr 0:12950aa67f2a 1 // based on http://mbed.org/users/shimniok/code/L3G4200D/
maetugr 0:12950aa67f2a 2
maetugr 0:12950aa67f2a 3 #ifndef L3G4200D_H
maetugr 0:12950aa67f2a 4 #define L3G4200D_H
maetugr 0:12950aa67f2a 5
maetugr 0:12950aa67f2a 6 #include "mbed.h"
maetugr 0:12950aa67f2a 7 #include "I2C_Sensor.h"
maetugr 0:12950aa67f2a 8
maetugr 0:12950aa67f2a 9 #define L3G4200D_I2C_ADDRESS 0xD0
maetugr 0:12950aa67f2a 10
maetugr 0:12950aa67f2a 11 // register addresses
maetugr 0:12950aa67f2a 12 #define L3G4200D_WHO_AM_I 0x0F
maetugr 0:12950aa67f2a 13
maetugr 0:12950aa67f2a 14 #define L3G4200D_CTRL_REG1 0x20
maetugr 0:12950aa67f2a 15 #define L3G4200D_CTRL_REG2 0x21
maetugr 0:12950aa67f2a 16 #define L3G4200D_CTRL_REG3 0x22
maetugr 0:12950aa67f2a 17 #define L3G4200D_CTRL_REG4 0x23
maetugr 0:12950aa67f2a 18 #define L3G4200D_CTRL_REG5 0x24
maetugr 0:12950aa67f2a 19 #define L3G4200D_REFERENCE 0x25
maetugr 0:12950aa67f2a 20 #define L3G4200D_OUT_TEMP 0x26
maetugr 0:12950aa67f2a 21 #define L3G4200D_STATUS_REG 0x27
maetugr 0:12950aa67f2a 22
maetugr 0:12950aa67f2a 23 #define L3G4200D_OUT_X_L 0x28
maetugr 0:12950aa67f2a 24 #define L3G4200D_OUT_X_H 0x29
maetugr 0:12950aa67f2a 25 #define L3G4200D_OUT_Y_L 0x2A
maetugr 0:12950aa67f2a 26 #define L3G4200D_OUT_Y_H 0x2B
maetugr 0:12950aa67f2a 27 #define L3G4200D_OUT_Z_L 0x2C
maetugr 0:12950aa67f2a 28 #define L3G4200D_OUT_Z_H 0x2D
maetugr 0:12950aa67f2a 29
maetugr 0:12950aa67f2a 30 #define L3G4200D_FIFO_CTRL_REG 0x2E
maetugr 0:12950aa67f2a 31 #define L3G4200D_FIFO_SRC_REG 0x2F
maetugr 0:12950aa67f2a 32
maetugr 0:12950aa67f2a 33 #define L3G4200D_INT1_CFG 0x30
maetugr 0:12950aa67f2a 34 #define L3G4200D_INT1_SRC 0x31
maetugr 0:12950aa67f2a 35 #define L3G4200D_INT1_THS_XH 0x32
maetugr 0:12950aa67f2a 36 #define L3G4200D_INT1_THS_XL 0x33
maetugr 0:12950aa67f2a 37 #define L3G4200D_INT1_THS_YH 0x34
maetugr 0:12950aa67f2a 38 #define L3G4200D_INT1_THS_YL 0x35
maetugr 0:12950aa67f2a 39 #define L3G4200D_INT1_THS_ZH 0x36
maetugr 0:12950aa67f2a 40 #define L3G4200D_INT1_THS_ZL 0x37
maetugr 0:12950aa67f2a 41 #define L3G4200D_INT1_DURATION 0x38
maetugr 0:12950aa67f2a 42
maetugr 0:12950aa67f2a 43 class L3G4200D : public I2C_Sensor {
maetugr 0:12950aa67f2a 44 public:
maetugr 0:12950aa67f2a 45 L3G4200D(PinName sda, PinName scl); // constructor, uses I2C_Sensor class
maetugr 4:b0a60b0b24a9 46 void read(); // read all axis from register to array data
maetugr 0:12950aa67f2a 47 float offset[3]; // offset that's subtracted from every measurement
maetugr 0:12950aa67f2a 48 void calibrate(int times, float separation_time); // calibration from 'times' measurements with 'separation_time' time between (get an offset while not moving)
maetugr 0:12950aa67f2a 49 int readTemp(); // read temperature from sensor
maetugr 0:12950aa67f2a 50
maetugr 0:12950aa67f2a 51 private:
maetugr 4:b0a60b0b24a9 52 void readraw();
maetugr 0:12950aa67f2a 53 };
maetugr 0:12950aa67f2a 54
maetugr 0:12950aa67f2a 55 #endif