Okay, demfall scheint es mir, als ob ich beim Auslesen eines Bytes das vom TWI kommt noch etwas falsch verstanden zu haben.

Das Byte dass ich auslesen will (welches vom Master kommt) wird doch im TWSR Register gepseichert, sobald der TWI-Flag kommt, oder?

Beim jetzigen Code steht jetzt immer 1100000 (ja, es sind nur 7 Bits) auf dem LCD des Slaves.

Hier nochmal mein aktueller Code:

Code:
#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h"

#define Dev24C02  	0xA0      	// EEprom twi Adresse
#define LM75		0x90		// Temperatursensor twi Adresse

void twi_slave_init(void)
{
	TWAR = 0xCC;
	TWCR |= (1<<TWEN) | (1<<TWEA);
}


int main(void)
{
	uint8_t output;			
	unsigned char buffer[10];

	lcd_init(LCD_DISP_ON);					// LCD initialisieren
    twi_slave_init();                       // TWI Slave initialisieren



	while(1)
	{
		while(!(TWCR & 0b10000000)); //solange warten, bis was ankommt

		output = TWSR;

		lcd_clrscr();
		lcd_gotoxy(0,0);
		lcd_puts(itoa(output, buffer, 2));

		_delay_ms(300);
	}
}