Guten Morgen

Folgende Situation.
Ich möchte an einem AT-Mega 8 einen kompletten Port als Eingang auf einen I2C IC übertragen.
In diesem Fall habe ich den MCP23017 gewählt.

Im Programm ist das eine einfache Routine, da ich den Port z.b D einfach auf den I2C schreiben kann.
Ich nutze das so , um mit 2 Adern (gepufferter I2c) vielen Daten zu übertragen.

das funktioniert auch soweit.
Zeile aus dem Programm: i2c_write (PIND); (Beispiel)

jetzt habe ich aber das Problem, das das sofort geschieht. ich würde gerne das die Eingänge eines Ports zwar sofort übertragen werden, zb PIND.0 wird direkt zum GBA0 übertragen (HIGH Zustand), der GBA0 aber verzögert wieder 0 wird.(ca. 200ms, bzw auch einstellbar wenn länger oder kürzer)
Die Lösung das ganze über Kondensatoren zu machen finde ich nicht wirklich toll und zu unflexibel.

Vom Gedanke her, müsste ich daher jeden einzelnen AT Mega PIN aufbröseln, verzögern und wieder als Gesamtes Byte zusammenfügen und dann an den I2C übertragen.
Ich habe dazu schonmal was von Bitmanipulation gelesen. oder ist das falsche Ansatz ?
hat da jemand schonmal in der Richtung was gemacht und kann mir da weiterhelfen ??

Gruss
Patrick