a quadcopter code

Dependencies:   Pulse RangeFinder mbed

Committer:
Gendy
Date:
Tue Nov 24 19:57:06 2015 +0000
Revision:
0:4a55d0a21ea9
Quad_project PID on angle;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Gendy 0:4a55d0a21ea9 1 //ported from arduino library: https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050
Gendy 0:4a55d0a21ea9 2 //written by szymon gaertig (email: szymon@gaertig.com.pl)
Gendy 0:4a55d0a21ea9 3 //
Gendy 0:4a55d0a21ea9 4 //Changelog:
Gendy 0:4a55d0a21ea9 5 //2013-01-08 - first beta release
Gendy 0:4a55d0a21ea9 6
Gendy 0:4a55d0a21ea9 7 #ifndef I2Cdev_h
Gendy 0:4a55d0a21ea9 8 #define I2Cdev_h
Gendy 0:4a55d0a21ea9 9
Gendy 0:4a55d0a21ea9 10 #include "mbed.h"
Gendy 0:4a55d0a21ea9 11
Gendy 0:4a55d0a21ea9 12 #define I2C_SDA p9
Gendy 0:4a55d0a21ea9 13 #define I2C_SCL p10
Gendy 0:4a55d0a21ea9 14
Gendy 0:4a55d0a21ea9 15 class I2Cdev {
Gendy 0:4a55d0a21ea9 16 private:
Gendy 0:4a55d0a21ea9 17 I2C i2c;
Gendy 0:4a55d0a21ea9 18 Serial debugSerial;
Gendy 0:4a55d0a21ea9 19 public:
Gendy 0:4a55d0a21ea9 20 I2Cdev();
Gendy 0:4a55d0a21ea9 21 I2Cdev(PinName i2cSda, PinName i2cScl);
Gendy 0:4a55d0a21ea9 22
Gendy 0:4a55d0a21ea9 23 int8_t readBit(uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint8_t *data, uint16_t timeout=I2Cdev::readTimeout());
Gendy 0:4a55d0a21ea9 24 int8_t readBitW(uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint16_t *data, uint16_t timeout=I2Cdev::readTimeout());
Gendy 0:4a55d0a21ea9 25 int8_t readBits(uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint8_t *data, uint16_t timeout=I2Cdev::readTimeout());
Gendy 0:4a55d0a21ea9 26 int8_t readBitsW(uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint16_t *data, uint16_t timeout=I2Cdev::readTimeout());
Gendy 0:4a55d0a21ea9 27 int8_t readByte(uint8_t devAddr, uint8_t regAddr, uint8_t *data, uint16_t timeout=I2Cdev::readTimeout());
Gendy 0:4a55d0a21ea9 28 int8_t readWord(uint8_t devAddr, uint8_t regAddr, uint16_t *data, uint16_t timeout=I2Cdev::readTimeout());
Gendy 0:4a55d0a21ea9 29 int8_t readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8_t *data, uint16_t timeout=I2Cdev::readTimeout());
Gendy 0:4a55d0a21ea9 30 int8_t readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint16_t *data, uint16_t timeout=I2Cdev::readTimeout());
Gendy 0:4a55d0a21ea9 31
Gendy 0:4a55d0a21ea9 32 bool writeBit(uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint8_t data);
Gendy 0:4a55d0a21ea9 33 bool writeBitW(uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint16_t data);
Gendy 0:4a55d0a21ea9 34 bool writeBits(uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint8_t data);
Gendy 0:4a55d0a21ea9 35 bool writeBitsW(uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint16_t data);
Gendy 0:4a55d0a21ea9 36 bool writeByte(uint8_t devAddr, uint8_t regAddr, uint8_t data);
Gendy 0:4a55d0a21ea9 37 bool writeWord(uint8_t devAddr, uint8_t regAddr, uint16_t data);
Gendy 0:4a55d0a21ea9 38 bool writeBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8_t *data);
Gendy 0:4a55d0a21ea9 39 bool writeWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint16_t *data);
Gendy 0:4a55d0a21ea9 40
Gendy 0:4a55d0a21ea9 41 static uint16_t readTimeout(void);
Gendy 0:4a55d0a21ea9 42 };
Gendy 0:4a55d0a21ea9 43
Gendy 0:4a55d0a21ea9 44 #endif