Zitat Zitat von Ritchie Beitrag anzeigen
Nur werden hier Start / Stop / Repeated Start komplett aussen vorgelassen, diese werden laut diesem Code über den Default geleitet (also Reset ?!).

Wird diese Routine auch dann ausgeführt, wenn ich mit einem anderen Partner rede ?
Das ist dein Code, das mußt du doch wissen.

Die Beschreibung aus der Headerdatei <twi.h> ist nicht wirklich hilfreich oder ?
Der Headerfile hilft dir da wenig, das ist ja nur eine Schreibhilfe. Was du wissen mußt, steht im Datenblatt und in den Application Notes.

Deine Bilder helfen auch nicht, sie zeigen einen Layer zu hoch. Da kommt das Timing garnicht mehr vor. Selbst wenn auf dieser Ebene alle Bits gleich breit dargestellt sind, heißt das nicht, daß sie gleich lang sind.

The TWINT Flag is set in the following situations:

After the TWI has transmitted a START/REPEATED START condition

After the TWI has transmitted SLA+R/W

After the TWI has transmitted an address byte

After the TWI has lost arbitration

After the TWI has been addressed by own slave address or general call

After the TWI has received a data byte

After a STOP or REPEATED START has been received while still addressed as a slave

When a bus error has occurred due to an illegal START or STOP condition
Als Slave sind für dich nur die letzten 4 von Bedeutung. Wichtiger sind aber die Bits, mit der der Kontroler gesteuert wird und ihre genaue Wirkung.

Bau dir eine Testumgebung auf und teste mit Hilfe von Debugger und LA oder Speicherscope deinen Code, bis du genau weißt, was wann und warum passiert.

MfG Klebwax