Das ist dein Code, das mußt du doch wissen.
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.Die Beschreibung aus der Headerdatei <twi.h> ist nicht wirklich hilfreich oder ?
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.
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.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
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
Lesezeichen