Vielen Dank!
Das bringt mich schon einen ganzen Schritt weiter.
Er empfängt jetzt jedenfalls schonmal ACK´s
Aber irgendwie macht er nicht merh weiter nachdem ich stoppe und dann wieder starte.
Code:
uart_init (); 
TWBR = 00010001;
i2c_start ();
while(!( TWSR == 0x08) )
{}
uart_write ("Start ");
TWDR = 0b01110000; //sla +R
TWCR = 0b10000100; // senden
while(!( TWSR ==0x18 || TWSR==0x28 ))
{}
uart_write ("ACK empfangen ");
TWDR = 0b00000010; //2. register
TWCR = 0b10000100; //senden
while(!( TWSR ==0x18 || TWSR==0x28 ))
{}
uart_write ("ACK2 empfangen ");
TWCR = 10010100; //Stop
while( !(TWCR & 128) )
{}                     //warten
uart_write ("Stop ");
 
i2c_start ();
while(!( TWSR == 0x08) )
{}
uart_write ("Start2 ");
TWDR = 0b01110001;
TWCR = 0b10000100; // senden
while(!( TWSR ==0x18 || TWSR==0x28 ))
{}
uart_write ("ACK3 empfangen ");
Das letzte, was ich empfange ist "STOP"
Aber eigneltich mache ich beim Starten ja genau das gleiche, wie oben auch.
Aber ich bekomme einfach kein START2.
Was mache ich falsch?

Gruß
Olaf