Na das sieht doch schon gut aus.

Nachdem du Status 0x40 erhalten hast mußt Du nur auch wieder das TWINT auf 1 setzen, damit es weiter geht.

Wenn Du die einzelne Kommunikation nur auf das einmalige lesen eines Bytes von diesem PCF beschränken willst, mußt Du dabei gleichzeitig das TWEA auf 0 setzen. Das zeigt dem PCF an, daß dies die letzte Abfrage (in dem Fall die erste und die letzte gleichermaßen) ist.

Sollen die Daten eines PCF laufend eingelesen werden, um z.B. auf einen Pinwechsel zu warten, setzt Du das TWEA auf 1, dann läßt sich der PCF immer wieder auslesen. Willst Du dann z.B. auf einen anderen PCF wechseln muß das TWEA vor(!) dem letzten empfangenem Byte wieder auf 0 gesetzt werden.

Nach der 0x40 kehrt sich also die 'Richtung' vom ACK/NACK um, es wird nun vom ATmega erzeugt und zeigt dem PCM an, ob weiterhin ausgelesen wird.

In dem Zusammenhang sind dann auch die folgenden Statuswerte zu sehen, wenn Du vorher festgelegt hast, daß ein ACK gesendet wird, bekommst Du die 0x50, und mußt anschließend weiter auslesen. Nach Du ein NACK erzeugt hast bekommst Du nach dem nächsten empfangenen Byte die 0x58, erst jetzt darfst Du mit TWSTO die Verbindung beenden.