OK gut - wie ich schon geschrieben hatte hattest du glaube ich deinen Beitrag da oben auch nochmal editiert das hatte ich nicht gesehen - oder meine Augen lassen nach

Dennoch: Der Ringbuffer ist notwendig wenn Du tatsächlich wie in dem Testcode von Dirk nahezu komplett ohne Pause Daten in Richtung Slave ballerst
Sonst kann da natürlich mal was überschrieben werden bevor der Slave überhaupt mitbekommt das sich da was geändert hatte (läuft ja asynchron zum Hauptprogramm).

Mit der bisherigen Methode ist eine kleine Pause nach jeder Übertragung notwendig sonst kann das in die Hose gehen auch wenn der Rest vom Code 100% korrekt arbeitet.
Man kann in der Zeit natürlich irgendwas anderes machen - auch auf dem I2C Bus aber mit anderen Slaves.

So nun aber genug geschrieben für heute

MfG,
SlyD