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.
Das letzte, was ich empfange ist "STOP"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 ");
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







Zitieren

Lesezeichen