From 9ce6d54b80ac6e0ebb6dddbff5c6c8c1b4498414 Mon Sep 17 00:00:00 2001 From: Magnus Persson Date: Sun, 16 Oct 2022 09:23:51 +0200 Subject: [PATCH] Updated i2c lib for esp32 --- lib/mpu6050/I2Cdev.cpp | 22 +--------------------- lib/mpu6050/I2Cdev.h | 2 +- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/lib/mpu6050/I2Cdev.cpp b/lib/mpu6050/I2Cdev.cpp index 173f2ac..233e409 100644 --- a/lib/mpu6050/I2Cdev.cpp +++ b/lib/mpu6050/I2Cdev.cpp @@ -234,9 +234,7 @@ int8_t I2Cdev::readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8 useWire->beginTransmission(devAddr); useWire->send(regAddr); useWire->endTransmission(); - useWire->beginTransmission(devAddr); useWire->requestFrom((uint8_t)devAddr, (uint8_t)min((int)length - k, I2CDEVLIB_WIRE_BUFFER_LENGTH)); - for (; useWire->available() && (timeout == 0 || millis() - t1 < timeout); count++) { data[count] = useWire->receive(); #ifdef I2CDEV_SERIAL_DEBUG @@ -244,8 +242,6 @@ int8_t I2Cdev::readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8 if (count + 1 < length) Serial.print(" "); #endif } - - useWire->endTransmission(); } #elif (ARDUINO == 100) // Arduino v1.0.0, Wire library @@ -258,9 +254,7 @@ int8_t I2Cdev::readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8 useWire->beginTransmission(devAddr); useWire->write(regAddr); useWire->endTransmission(); - useWire->beginTransmission(devAddr); useWire->requestFrom((uint8_t)devAddr, (uint8_t)min((int)length - k, I2CDEVLIB_WIRE_BUFFER_LENGTH)); - for (; useWire->available() && (timeout == 0 || millis() - t1 < timeout); count++) { data[count] = useWire->read(); #ifdef I2CDEV_SERIAL_DEBUG @@ -268,8 +262,6 @@ int8_t I2Cdev::readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8 if (count + 1 < length) Serial.print(" "); #endif } - - useWire->endTransmission(); } #elif (ARDUINO > 100) // Arduino v1.0.1+, Wire library @@ -282,10 +274,7 @@ int8_t I2Cdev::readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8 useWire->beginTransmission(devAddr); useWire->write(regAddr); useWire->endTransmission(); - // See: https://github.com/espressif/arduino-esp32/issues/6674 - // useWire->beginTransmission(devAddr); useWire->requestFrom((uint8_t)devAddr, (uint8_t)min((int)length - k, I2CDEVLIB_WIRE_BUFFER_LENGTH)); - for (; useWire->available() && (timeout == 0 || millis() - t1 < timeout); count++) { data[count] = useWire->read(); #ifdef I2CDEV_SERIAL_DEBUG @@ -357,7 +346,6 @@ int8_t I2Cdev::readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint1 useWire->beginTransmission(devAddr); useWire->send(regAddr); useWire->endTransmission(); - useWire->beginTransmission(devAddr); useWire->requestFrom(devAddr, (uint8_t)(length * 2)); // length=words, this wants bytes bool msb = true; // starts with MSB, then LSB @@ -376,8 +364,6 @@ int8_t I2Cdev::readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint1 } msb = !msb; } - - useWire->endTransmission(); } #elif (ARDUINO == 100) // Arduino v1.0.0, Wire library @@ -390,7 +376,6 @@ int8_t I2Cdev::readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint1 useWire->beginTransmission(devAddr); useWire->write(regAddr); useWire->endTransmission(); - useWire->beginTransmission(devAddr); useWire->requestFrom(devAddr, (uint8_t)(length * 2)); // length=words, this wants bytes bool msb = true; // starts with MSB, then LSB @@ -409,8 +394,6 @@ int8_t I2Cdev::readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint1 } msb = !msb; } - - useWire->endTransmission(); } #elif (ARDUINO > 100) // Arduino v1.0.1+, Wire library @@ -423,7 +406,6 @@ int8_t I2Cdev::readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint1 useWire->beginTransmission(devAddr); useWire->write(regAddr); useWire->endTransmission(); - useWire->beginTransmission(devAddr); useWire->requestFrom(devAddr, (uint8_t)(length * 2)); // length=words, this wants bytes bool msb = true; // starts with MSB, then LSB @@ -442,8 +424,6 @@ int8_t I2Cdev::readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint1 } msb = !msb; } - - useWire->endTransmission(); } #endif @@ -1486,4 +1466,4 @@ uint16_t I2Cdev::readTimeout = I2CDEV_DEFAULT_READ_TIMEOUT; return rxBufferLength - rxBufferIndex; } -#endif \ No newline at end of file +#endif diff --git a/lib/mpu6050/I2Cdev.h b/lib/mpu6050/I2Cdev.h index c4fe7f5..5b59c56 100644 --- a/lib/mpu6050/I2Cdev.h +++ b/lib/mpu6050/I2Cdev.h @@ -308,4 +308,4 @@ class I2Cdev { #endif // I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_NBWIRE -#endif /* _I2CDEV_H_ */ \ No newline at end of file +#endif /* _I2CDEV_H_ */