Meiner Meinung nach hat Bernhard mit beiden Hinweisen unrecht:
1. Die internen Pullups an SDA und SCL sind im AVR bei I2C immer deaktiviert, egal was im PORT Register für die beiden Pins steht.
2. Die Funktion i2c_start(address + {0 oder 1 für Schreiben bzw. Lesen}) erfordert zwingend den o.g. Inhalt als Parameter.

Meiner Meinung nach liegt Dein Fehler hier, Auszug aus Deinem Code:

i2c_start(0xE0); <- Fehler, besser i2c_start(0xE1);
i2c_write(0xE1); <- Fehler, löschen

Lbyte=i2c_readNak(); <- wie bernhard geschrieben hat: hinter den nächsten Befehl schieben

Hbyte=i2c_readAck();


Direkt vor dem Lesen (mit i2c_readAck) müßte es richtig heißen:
i2c_start(0xE1)

Du kannst nicht einfach ohne i2c_start von Schreiben auf Lesen wechseln.

Gruß, Dirk.