Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Heribert, > > ich hab zwar keinen pcf8575, weil mir die Beinchen zu eng zum Löten sind, aber das ist glaube > ich kein Mirakel. Laut Datenblatt (hier weiter links zu finden) ist jeweils nur ein zweites Byte > zu lesen bzw. zu schreiben, nachdem das Daten-Byte für Port 0-7 empfangen / gesendet wurde. > > Es gibt (bis jetzt) auch hier keinen Treiber für 8575, glaube ich. Aber das ist keine Hexerei. > > Du musst nur Funktionen aus dem Treiber pcf.c2 (so heisst der für den 8574) etwas modifizieren, > nach jedem Read- oder Write - Daten-Befehl noch einen zweiten anhängen, fürs zweite Byte. > Die Bit - Port - Zugehörigkeit steht auf Seite 11 auf dem Datenblatt. > > Ein Teil des Treibers könnte dann so aussehen: > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /*************************************/ > /* 2 Bytes an PCF8575 senden */ > /*************************************/ > function out(byte addr,byte data1,byte data2) returns int > { > i2c.cstart(addr); > i2c.write(data1); > i2c.write(data2); > i2c.stop(); > return -1; > } > > /******************************************/ > /* 1 Byte vom PCF8575 empfangen */ > /******************************************/ > function in(byte addr, byte number) returns byte > { > i2c.cstart(addr); > addr = i2c.readlast(); > if not number > { > i2c.stop(); > return addr; // byte 1 gelesen > } > addr = i2c.readlast(); > i2c.stop(); > return addr; // byte 2 gelesen > } > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Die Chip-Adresse "addr" muß zum Lesen von Device 0 dann 0x41 sein, > zum Schreiben von Device 0 muß sie 0x40 lauten. Siehe Seite 8 am Datenblatt. > > Wie gesagt, ich kanns nicht testen, mangels Hardware. > Vielleicht kriegen wir ja von Dir einen fertigen Treiber samt Beschreibung zu sehen...? > > Gruß > Martin > > > Hallo , > > > > irgendwie bekomme ich das nicht hin die Eingänge eines PCF 8575 abzufragen. > > > > Bei einem PCF 8574 geht es ja so : > > > > function get(byte port) returns int > > { > > i2c.cstart(65); > > addr = i2c.readlast(); > > i2c.stop(); > > return (65 and (1 shl port))!=0; > > } > > > > Da die abzufragenden Port im zweiten Block liegen also Port 8-15 muss das ganze etwas anders > > aussehen. Nur meine Versuche sind leider gescheitert. Vieleicht kann mir jemand unter die Arme > > greifen. > > > > > > Mfg > > > > Heribert > > > >