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 Wolfgang Meinberg - 22.07.2010 23:05)
Als Antwort auf Re: PCF8574 Ports einzeln ansteuern, Mega 128 von PeterS - 22.07.2010 22:38
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
> > > > 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.."?  :-)


Danke für die schnelle Antwort....ich glaube ich hab mein Problem schlecht, mi�verständlich
beschrieben.....das Problem ist folgendes:
Verschiedene Byte auf den PCF8574 schreiben uind lesen ist kein Problem.

Ich möchte eigentlich folgendes machen:

Ich schreibe ein Byte, sagen wir 00000001 zum PCF8547. Wenn dann z.B.  "Taster1" = 0
dann soll das  vierte Bit zu "1" wechseln, die "1" des ersten Bit´s soll unverändert bleiben.
( 00001001)

Mein Gedanke ist zuerst das Byte vom PCF8574 zu lesen, im Byte
das 4.Bit auf "1" setzen und dann wieder in den PCF zurĂĽckzuschreiben...theoretisch...

Mein Problem ist eigentlich "nur" wie verändere ich im Programm das gelesene Byte?

Gelesen 00000001...."wenn  Taster1 betätigt"  dann soll vom
gelesenen Byte das 4.Bit  "1" werden> 00001001  

Danke nochmal! Werde auch mal in Deinen Links mich schlau machen!

GruĂ? Wolfgang


    Antwort schreiben


Antworten:

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)