Today I tried to set up an I2C eeprom for my project, using the driver
in xpcc. I got the communication working after a while (I think the
default address it uses, 0xA0 is wrong, as that's an 8 bit address, so
the correct would be 0x50), but something doesn't work, I think
probably on the read side, but I'm not sure.
If I store a uint16_t and then read it back (either via the templated
or the buffer-length way), the high byte (which is the second one in
memory) is always 0xFF.
If I lie, and for length I pass 3, the uint16_t will contain the
correct value. I suspect there might be a small error in the low level
implementation of the I2C transaction that causes this, but I don't
know nearly enough to actually verify it. Can somebody take a look at
this, or tell me if I'm completely wrong? :D
xpcc-dev mailing list