Wire.write((int)(addr >> 8));
Wire.write((int)(addr & 0xFF));
After going to the trouble of splitting the int address into low order byte and high order byte, why are you then casting the bytes to ints?
Wire.write((int)(addr >> 8));
Wire.write((int)(addr & 0xFF));
After going to the trouble of splitting the int address into low order byte and high order byte, why are you then casting the bytes to ints?