Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: PCF8574 Ports einzeln ansteuern, Mega 128 Kategorie: I²C-Bus (von PeterS - 22.07.2010 22:38)
Als Antwort auf Re: PCF8574 Ports einzeln ansteuern, Mega 128 von Wolfgang Meinberg - 22.07.2010 18:51

> > > Hallo Zusammen!
> > >
> > >
> > > ...in der Doku zum PCF8574 hab ich gelesen, daĂ? man die Ports auch einzeln ansteuern kann (Bit)
> > > so wie die Ports der Mega 128, (z.B.Port_WriteBit(15,1) ). Im Forum CC2 gibt es einen Treiber fĂĽr die Einzelansteuerung.
> > > der Ports. Ist dies auch bei der Mega128 möglich,  wenn ja wie?
> > >
> > > Danke fĂĽr die Hilfe!
> > >
> >
> > Hi,
> >
> > ich habe die Doku kurz angeschaut und nur gesehen, das man immer ein komplettes Byte an I2C
> > schickt. Du mu�t Dir halt einfach den Zustand aller Ports merken, und dann veränderst Du halt
> > nur ein Bit für den zu ändernden Port im gesendeten Byte.
> >
> > Siehe auch: http://www.mikrocontroller.net/articles/Port-Expander_PCF8574
> >
> > Gruss Peter
>
> Hallo Peter!
>
> ...danke fĂĽr die Antwort. Ich hab auch nichts weiteres dazu gefunden, man kann bei der Mega 128
> wohl nur ein komplettes Byte senden.
> Da ich Anfänger bin, könntest Du mir kurz erklären, wie ich nur ein Bit verändere.
> Ich  lese mit I2C_Read_ACK das Byte und will z.b.das erste Bit von 0 >1 setzen...
> wie mach ich das??? Evtl. kleines Demo Programm?!
>
> Bytes an den PCF8574 zu senden und zu lesen ist kein Problem, aber dafĂĽr hab ich keine Idee...
>
> Danke erstmal...
>
>
> GruĂ? Wolfgang

Hallo Wolfgang,

man kann bei I2C immer nur komplette Bytes senden, und nicht einzelne Bits. Schau Dir am besten
das I2C Protokoll genauer an. Links:

http://de.wikipedia.org/wiki/I%C2%B2C
http://www.mikrocontroller.net/articles/I2C

Du schickst an den PCF8574 immer ein Byte mit allen Werten fĂĽr alle 8 Portbits. Wenn Du nur einen
Portausgang verändern möchtest, so änderst Du auch nur das Bit an der jeweiligen Stelle in dem
Byte was Du schickst.

I2C_Init(I2C_100kHz);  // I2C Bit Rate: 100 kHz - nur einmal im Programm aufrufen

// Wert an PCF8574 schicken
I2C_Start();
I2C_Write(0x40);       // DEVICE ADDRESS : 0x40 + untere Addressbits
I2C_Write(portvalue);  // Bit Werte von allen 8 portbits
I2C_Stop();

Du muĂ?t auf jeden Fall das I2C Protokoll verstanden haben, sonst kommst Du auf Dauer nicht
weiter. Es gibt in den Demoprogrammen auch ein Projekt, welches auf ein I2C EEPROM zugreift.
Zusammen mit dem 24C64 Datenblatt hilft das zusätzlich den Zugriff zu verstehen.

Gruss Peter


P.S. Lautet Deine email Adresse nun "a-puetz@a.." oder "j-meinberg@a.."?  :-)


    Antwort schreiben


Antworten:

Re: PCF8574 Ports einzeln ansteuern, Mega 128 (von Wolfgang Meinberg - 22.07.2010 23:05)
    Re: PCF8574 Ports einzeln ansteuern, Mega 128 (von PeterS - 23.07.2010 8:37)
        Re: PCF8574 Ports einzeln ansteuern, Mega 128 (von Wolfgang Meinberg - 23.07.2010 17:55)
            Re: PCF8574 Ports einzeln ansteuern, Mega 128 (von Manfred - 25.07.2010 19:48)