Ansteuerung PCF8575

OP #3741287
Lesenswert?

Hallo
Ich nutze den PCF8575 (16 Bit) um 16 LED anzusteuern (versuche es 
wenigstens)
Mit der Anweisung
1
e = 0xdf;           // Angabe LED
2
i2c_start(adr2_w);  // Schreibbefehl
3
i2c_write(e);       // Schreibe e
4
_delay_ms(100);     // 100ms warten

kann ich die LEDs 0_0 bis 0_7 ansteuern.
Wnn ich
e=0xdf in zb.0xdd veränder oder anders, kann ich die LED 1_0 bis 1_7 
nicht ansteuern.
Was mach ich falsch?
achim
OP #3741334
Lesenswert?

Hallo Adolf
meinst du, das der Hinweis ins Datenblatt zu schauen eine Hilfe ist.
Habe das Datenblatt als PDF hier im Hintergrund auf dem Schirm. habe 
alle wichtigen Sachen gelesen, Adressen, Belegung, Anschlüsse, Grösse. 
Aber zu diesem Thema habe ich nichts wirklich gefunden (oder überlesen).
Dieses Forum ist zum Fragen da und Hilfe zu bekommen.
Es könnte auch sein, das du nur etwas sagen wolltest und selber keine 
Ahnung hast?
achim
OP #3741340
Lesenswert?

Hallo Klaus
habe dein Code sofort getestet. Es geht. Wunderbar. Danke
Habe aber noch eine kleine Frage zur Funktion. Irgendwie werde ich aus 
dem Stück nicht schlau.
1
i2c_start(adr2_w);  // Schreibbefehl
2
e = 0xdf;           // Angabe LED Port0
3
i2c_write(e);       // Schreibe e
4
e = 0xab;           // Angabe LED Port1
5
i2c_write(e);       // Schreibe e
6
_delay_ms(100);     // 100ms warte

Du  schreibst unter der adr2 zweimal e mit
0xdf und 0xab

Werden die Register nacheinander beschrieben?
Gibt es einen Grund dafür?
Oder habe ich im Datenblatt wirklich was übersehen?
achim
#3741345
Lesenswert?

Der wird mit i2c_start(adr2_w); aufgerufen. Danach fühlt er sich 
angesprochen.
Dann sendest du mit
e = 0xdf;           // Angabe LED Port0
i2c_write(e);       // Schreibe e

Die Daten die auf PORT0 sollen.
Danach zählt er intern automatisch hoch und bekommt mit
e = 0xab;           // Angabe LED Port1
i2c_write(e);       // Schreibe e

Die Daten für PORT1 nachgeschoben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren