PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C Erweiterung mit PCA9555



Stefanie
06.04.2006, 11:54
Hallo,
ich habe einen PCA9555 Baustein an meinen Atmega128 und wollte fragen, ob wer von euch diesen Baustein schon mal verwendet hat und mir den Code zuschicken kann. Würde nämlich gerne mal schauen, wie man sowas macht . :-k
Wäre echt toll =D>

Crazy Harry
07.04.2006, 07:28
Was für eine Programmiersprache verwendest du ?

...und ja ca. 80x verbaut :D

Stefanie
07.04.2006, 11:30
hi Crazy Harry,

ich programmiere in C

Crazy Harry
07.04.2006, 11:54
das ist schlecht :D - ich progge in pascal. aber so schwer sollte es nicht sein. die basisadresse ist 40h schreiben/41h lesen wenn A0-A2 auf masse liegt.

ich weiß nicht, wie das bei deinem compiler ist: ich muß die oben 7 bits nach rechts schieben und hab so automatisch 20h schreibend und lesend. der compiler macht daraus automatisch 40h und 41h je nach dem ob ich I2COut oder I2CInp mache ;) .

ich weiß nicht, ob dir das so etwas bringt ....

initialisierung beider ports als output

I2COut($20,$06,$00); //adresse, configration-register 6, output
I2COut($20,$07,$00); //adresse, configration-register 7, output

ausgabe von daten:

I2COut($20,$02,Out1); //Bit 0-7
I2COut($20,$03,Out2); //Bit 8-15



wenn du etwas einlesen willst, muß so konfiguriert werden:

I2COut($20,$06,$FF); //adresse, configration-register 6, input
I2COut($20,$07,$FF); //adresse, configration-register 7, input

es kann jeder pin unabhängig von den anderen als input oder output eingestellt werden - 1 = input / 0 = output

lesen der eingänge mit

I2CInp($20,$00,Data1);
I2CInp($20,$01,Data2);


interessant ist vielleicht noch die möglichkeit die eingänge zu invertieren:

I2COut($20,$04,$00); //Polarity Inversion Register Bit 0-7
I2COut($20,$05,$00); //Polarity Inversion Register Bit 8-15

0 = "normal" .... 1 = invertiert

wenn du konkrete fragen hast: fragen :)

Stefanie
16.04.2006, 17:35
Ganz herzlichen Dank!!!
Hab das irgendwie nach dem Datenblatt so verstanden, dass man um die Konfigurationsregister zu schalten, nur die Adresse $06 eingeben zu braucht und dann die Daten, aber so wie du es mir gesagt hast, so funktioniert es.
Danke!!