Skip to content

Commit 605a740

Browse files
authored
Merge pull request #750 from nekomona/count-patch
Fix count overflow on readBytes/readWords
2 parents 2a0d98f + 10d0877 commit 605a740

File tree

5 files changed

+9
-9
lines changed

5 files changed

+9
-9
lines changed

Diff for: Arduino/I2Cdev/I2Cdev.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ int8_t I2Cdev::readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8
217217
Serial.print("...");
218218
#endif
219219

220-
int8_t count = 0;
220+
uint8_t count = 0;
221221
uint32_t t1 = millis();
222222

223223
#if (I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE || I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_SBWIRE || I2CDEV_IMPLEMENTATION == I2CDEV_TEENSY_3X_WIRE)
@@ -329,7 +329,7 @@ int8_t I2Cdev::readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint1
329329
Serial.print("...");
330330
#endif
331331

332-
int8_t count = 0;
332+
uint8_t count = 0;
333333
uint32_t t1 = millis();
334334

335335
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE || I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_SBWIRE || I2CDEV_IMPLEMENTATION == I2CDEV_TEENSY_3X_WIRE

Diff for: Arduino/IAQ2000/IAQ2000.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ int8_t IAQ2000::readAllBytes(uint8_t devAddr, uint8_t length, uint8_t *data, uin
113113
Serial.print(" bytes...");
114114
#endif
115115

116-
int8_t count = 0;
116+
uint8_t count = 0;
117117

118118
Wire.requestFrom(devAddr, length);
119119

Diff for: MSP430/I2Cdev/I2Cdev.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ int8_t I2Cdev::readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8
215215
Serial.print("...");
216216
#endif
217217

218-
int8_t count = 0;
218+
uint8_t count = 0;
219219
uint32_t t1 = millis();
220220

221221
#if (I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE)
@@ -330,7 +330,7 @@ int8_t I2Cdev::readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint1
330330
Serial.print("...");
331331
#endif
332332

333-
int8_t count = 0;
333+
uint8_t count = 0;
334334
uint32_t t1 = millis();
335335

336336
#if (I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE)

Diff for: PIC18/I2Cdev/I2Cdev.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ THE SOFTWARE.
4141
* @return Number of bytes read (-1 indicates failure)
4242
*/
4343
int8_t I2Cdev_readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8_t *data) {
44-
int8_t count = 0;
44+
uint8_t count = 0;
4545

4646
// S
4747
IdleI2C();
@@ -104,7 +104,7 @@ int8_t I2Cdev_readByte(uint8_t devAddr, uint8_t regAddr, uint8_t *data) {
104104
* @return Number of words read (-1 indicates failure)
105105
*/
106106
int8_t I2Cdev_readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint16_t *data) {
107-
int8_t count = 0;
107+
uint8_t count = 0;
108108

109109
// S
110110
IdleI2C();

Diff for: RP2040/I2Cdev/I2Cdev.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ int8_t I2Cdev::readWord(uint8_t devAddr, uint8_t regAddr, uint16_t *data, uint32
149149
* @return Number of bytes read (-1 indicates failure)
150150
*/
151151
int8_t I2Cdev::readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8_t *data, uint32_t timeout) {
152-
int8_t count = 0;
152+
uint8_t count = 0;
153153

154154
i2c_write_blocking(i2c_default, devAddr, &regAddr, 1, true);
155155
count = i2c_read_timeout_us(i2c_default, devAddr, data, length, false, timeout * 1000);
@@ -166,7 +166,7 @@ int8_t I2Cdev::readBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8
166166
* @return Number of words read (-1 indicates failure)
167167
*/
168168
int8_t I2Cdev::readWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint16_t *data, uint32_t timeout) {
169-
int8_t count = 0;
169+
uint8_t count = 0;
170170
uint8_t data_buf[length*2];
171171

172172
i2c_write_blocking(i2c_default, devAddr, &regAddr, 1, true);

0 commit comments

Comments
 (0)