Ok das klingt super! Wieviel Bytes kann ich maximal übertragen? Und wie kann ich die Bytes dann wieder auslesen?

Als Beispiel:
Übertragen vom Master:

// Übertrage
i2c_start_wait(Motor_1 + I2C_WRITE); // set device address and write mode
i2c_write(Byte_1); // Übertragen des ersten Datenbytes
i2c_write(Byte_2); // Übertragen des zweiten Datenbytes
i2c_stop(); // set stop conditon = release bus

Empfangen vom Slave:

//Daten empfangen
case TW_SR_DATA_ACK: /*TW_SR_DATA_ACK = data received, ACK returned.
Vom Master gesendete Daten wurden empfangen
und es wurde mit Acknowledge geantwortet*/

Byte_1 = TWDR; /*Übertragen der Daten*/
Byte_2 = TWDR; /*Übertragen der Daten*/

TWCR |= (1<<TWINT); /*Löschen des für die TWI Übertragung nötigen
Interruptflags.*/

i2c_timeout = 0; /*Variable "i2c_timeout" wird auf "0" gesetzt.
Also zurückgesetzt.*/

return; //Interrupt verlassen

Könnte das so funktionieren?

Gruß Andi