In function _eeprom_read_sub() the loop for reading bytes ends with:
for (j = 0; j < 255 && !UEEPROMLIB_WIRE.available(); j++) { delay(uEEPROMLIB_WIRE_SHORT_DELAY); // Little delay to assure EEPROM is able to process data; if missing and inside for loop meses some values uEEPROMLIB_YIELD }
which seems fair between each byte access, but (if I understand correctly) should not be called for the last byte.
Because on last read byte there will never be new available data, so the for loop will loop 255 times before exiting. Then each read access will add an extra 255ms useless delay.
Hello,
In function
_eeprom_read_sub()
the loop for reading bytes ends with:for (j = 0; j < 255 && !UEEPROMLIB_WIRE.available(); j++) { delay(uEEPROMLIB_WIRE_SHORT_DELAY); // Little delay to assure EEPROM is able to process data; if missing and inside for loop meses some values uEEPROMLIB_YIELD }
which seems fair between each byte access, but (if I understand correctly) should not be called for the last byte. Because on last read byte there will never be new available data, so the for loop will loop 255 times before exiting. Then each read access will add an extra 255ms useless delay.