Zitat Zitat von Searcher Beitrag anzeigen
Hallo modtronic,

So richtig verstehe ich nicht, was Du möchtest.

Du hast einen Atmega8 und einen MCP23017.
Beide sind über einen I2C Bus verbunden.
Mit "i2c_write (PIND);" schickst Du den Inhalt von dem PIND Register zum MCP23017

Meinem Verständnis nach sind dann die PD0 bis PD7 des Mega8 als Eingänge konfiguriert.
Die GPA0 bis GPA7 des MCP23017 nehmen nach dem i2c_write (PIND) dann als Ausgänge den Zustand der Mega8 PortD Eingänge an.

An welcher Stelle soll denn was genau verzögert werden?

Gruß
Searcher
ja genau, der PORDT fungiert als Eingang der PORT GPA des MCP als Ausgang.
Wenn ich jetzt einen beliegigen PIN des Mega 8 oder mehrere auf 1 lege, wird das ja direkt zum MCP übertragen.
sobald der entsprechende PIN wieder 0 wird wird auch der PIN am MCP wieder 0.
vom Verständnis ist das das PIND.0 gleich GPA0 ist, PIND.1 gleich GPA1 ist usw.

ich möchte nun, sobald ein PIN des Portes D "1" wird das dieser auch sofort "1" am MCP wird, sobald nun der ensprechende PIN wieder 0 wird, dieser verzögert am MCP 0 wird.
das heisst wenn PIN 0, 1 und 2 HIGH sind, sind auch die PINS am MCP HIGH.
Wenn PIN 0, nun 0 wird, 1 und 2 High bleiben soll der PIN GPA0 am MCP verzögert "0" werden, der Rest nicht betroffen sein. bzw das soll für jeden Pin getrennt möglich sein.

Hoffe ich habe das verständlich erklären können ?

Gruss
Patrick