mpu9150

Fork of MPU9150 by Shundo Kishi

Committer:
donghuoyinzi
Date:
Wed Jun 21 05:06:51 2017 +0000
Revision:
3:16a08969e192
new fusion

Who changed what in which revision?

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