Quadcopter Attitude Control(Yaw-Pitch-Roll)

Dependencies:   mbed

Committer:
khaledelmadawi
Date:
Fri Jul 03 11:16:02 2015 +0000
Revision:
0:e63996fd7d3e
Quadcopter Attitude Control(Yaw-Pitch-Roll)

Who changed what in which revision?

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