Hallo,

Optimierung ist auf -s eingestellt. Ich noch mal die i2c_start() Funktion selber geschrieben. Zwar ästhetisch nicht so schön, aber plötzlich klappts. Wobei eigentlich beide Codes genau das selbe machen. Irgendwie komsich...

Code:
	TWCR = 0xA4;
	do
	{
		twst = TWCR & 0x80;
	}while (twst != 0x80);
	twst = TWSR & 0xF8;
	if ( (twst != TW_START) && (twst != TW_REP_START)) return 1;
	TWDR = address;
	TWCR = 0x84;
	do
	{
		twst = TWCR & 0x80;
	}while (twst != 0x80);
	twst = TWSR & 0xF8;
	if ( (twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK) ) return 1;

	return 0;