Bei der Initialisierung des TWI beim client fehlt etwas. Du musst den TWI-Interrupt aktivieren, wenn du interruptbasiert arbeiten willst.
Statt
Code:
TWCR = (1<<TWEA)|(1<<TWEN);
müsstest du folgendes schreiben:
Code:
TWCR = (1<<TWEA)|(1<<TWEN) | (1<<TWIE);