X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=bertos%2Fdrv%2Feeprom.c;h=52ab70c72f7ab5f1cf8232f1b66ec818212a9905;hb=544c3f3025ae00b1500d94e5b616270601a0efc7;hp=3b364f06d14b1fa01ca3a901c44931482feb80c4;hpb=6b7ec5ad0ef104a471ca77e2ded66f686e23150a;p=bertos.git diff --git a/bertos/drv/eeprom.c b/bertos/drv/eeprom.c index 3b364f06..52ab70c7 100644 --- a/bertos/drv/eeprom.c +++ b/bertos/drv/eeprom.c @@ -248,20 +248,11 @@ static size_t eeprom_read(struct KFile *_fd, void *_buf, size_t size) return 0; } - while (size--) - { - /* - * The last byte read does not have an ACK - * to stop communication. - */ - int c = i2c_get(size); - if (c == EOF) - break; - - *buf++ = c; - fd->fd.seek_pos++; - rd_len++; + if (i2c_recv(buf, size)) + { + fd->fd.seek_pos += size; + rd_len += size; } i2c_stop(); @@ -397,5 +388,3 @@ void eeprom_init(Eeprom *fd, EepromType type, e2dev_addr_t addr, bool verify) fd->fd.seek = kfile_genericSeek; } - -#endif