NOT FINISHED YET!!! My first try to get a self built fully working Quadrocopter based on an mbed, a self built frame and some other more or less cheap parts.
Diff: Sensors/Gyro/L3G4200D.h
- Revision:
- 0:0c4fafa398b4
- Child:
- 1:5a64632b1eb9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Sensors/Gyro/L3G4200D.h Wed Sep 26 12:15:00 2012 +0000 @@ -0,0 +1,56 @@ +// based on http://mbed.org/users/shimniok/code/L3G4200D/ + +#ifndef __L3G4200D_H +#define __L3G4200D_H + +#include "mbed.h" + +// register addresses +#define L3G4200D_WHO_AM_I 0x0F + +#define L3G4200D_CTRL_REG1 0x20 +#define L3G4200D_CTRL_REG2 0x21 +#define L3G4200D_CTRL_REG3 0x22 +#define L3G4200D_CTRL_REG4 0x23 +#define L3G4200D_CTRL_REG5 0x24 +#define L3G4200D_REFERENCE 0x25 +#define L3G4200D_OUT_TEMP 0x26 +#define L3G4200D_STATUS_REG 0x27 + +#define L3G4200D_OUT_X_L 0x28 +#define L3G4200D_OUT_X_H 0x29 +#define L3G4200D_OUT_Y_L 0x2A +#define L3G4200D_OUT_Y_H 0x2B +#define L3G4200D_OUT_Z_L 0x2C +#define L3G4200D_OUT_Z_H 0x2D + +#define L3G4200D_FIFO_CTRL_REG 0x2E +#define L3G4200D_FIFO_SRC_REG 0x2F + +#define L3G4200D_INT1_CFG 0x30 +#define L3G4200D_INT1_SRC 0x31 +#define L3G4200D_INT1_THS_XH 0x32 +#define L3G4200D_INT1_THS_XL 0x33 +#define L3G4200D_INT1_THS_YH 0x34 +#define L3G4200D_INT1_THS_YL 0x35 +#define L3G4200D_INT1_THS_ZH 0x36 +#define L3G4200D_INT1_THS_ZL 0x37 +#define L3G4200D_INT1_DURATION 0x38 + +typedef char byte; + +class Gyro +{ + public: + Gyro(PinName sda, PinName scl); // constructor, uses i2c + void read(int g[3]); // read all axis to array + int readTemp(); // read temperature from sensor + + private: + byte data[6]; // 8-Bit pieces of axis data + I2C i2c; // i2c object to communicate + void writeReg(byte reg, byte value); // write one single register to sensor + byte readReg(byte reg); // read one single register from sensor +}; + +#endif \ No newline at end of file