Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Abfrage der Eingänge am PCF 8575 Kategorie: Programmierung (von Martin Binder - 6.04.2004 10:44)
Als Antwort auf Abfrage der Eingänge am PCF 8575 von Heribert - 5.04.2004 8:12
Ich nutze:
C-Control II Unit, CC2-Application-Board, eigenes Board, OSOPT V3.0
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
>
>


    Antwort schreiben


Antworten:

Re: Abfrage der Eingänge am PCF 8575 (von Heribert.Sch - 6.04.2004 23:37)
    Re: Abfrage der Eingänge am PCF 8575 (von Martin Binder - 7.04.2004 8:00)