jm6wud

Committer:
jm6wud
Date:
Sun Oct 11 10:59:24 2020 +0000
Revision:
0:b708fa586a63
Child:
2:0f8c991d7d50
jm6wud

Who changed what in which revision?

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