I2C devices lib, modified for mbed

Dependents:   ezSBC_MPU9250

Committer:
JojoS
Date:
Mon Apr 24 16:21:21 2017 +0000
Revision:
0:c3b288708216
modified for mbed;

Who changed what in which revision?

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