Super! Das hilft mir auf jeden Fall weiter.
Herzlichen Dank!
Super! Das hilft mir auf jeden Fall weiter.
Herzlichen Dank!
Hallo,
nun muss ich doch noch einmal fragen.
Ich habe als Basisadresse die H22 an den drei Pins festgelegt. (L-H-L)
Dazu muss ich nun die H40 zählen um in den Slave zu schreiben (einen Ausgang zu schalten)
So wie ich es verstanden habe lautet nun meine Zieladresse H62.
Wenn ich dies nun im Beipielprogramm eingebe sieht das so aus:
Was habe ich jetzt falsch verstanden? Es geht nähmich nichtsCode:Config Scl = Portb.0 ' Ports fuer IIC-Bus, nicht Standard ! Config Sda = Portb.1 Config I2cdelay = 10 ' je höher der Wert umso langsamer der Bus I2cinit Const Pcf_write = &H62 ' Slaveadresse 'Const Pcf_read = &H41 ' Startausgabe Print Print "I2C-Soft Demo mit PCF 8574" Print Do I2cstart I2cwbyte Pcf_write I2cwbyte &HAA I2cstop Print Err ' Err = 0 -> kein Fehler ! Waitms 500 I2cstart I2cwbyte Pcf_write I2cwbyte &H55 I2cstop Print Err ' Err = 0 -> kein Fehler ! Waitms 500 Loop![]()
Du kannst mit 3 Bit nicht h 22 einstellen! 111x = 4+2+1 = 7 x zählt nicht lesen/schreibe
Fest verdratet 1000 Deine Verdratung 010 lesen/schrieben 1/0 ergibt...
1000010 = H42 + 1 für Schreiben = H43
1000010 = H42 + 0 für Lesen H42
versuche einmal...
Const Pcf_write = &H43 ' Slaveadresse
Const Pcf_read = &H42
Gruß Richard
@Düsentrieb:
Wenn du L-H-L (H02) einstellst mal 2 ---> H04
plus H40 (basis) ---->
H44 als leseadresse
H45 als schreibadresse
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo,
hab meinen Fehler zwischenzeitlich rausgefunden.
Ich hatte einen PCF8574 AT und und wusste nicht dass dies gleichbedeutend mit dem PCF8574A ist.
Die Basisadresse ist hier die 70.
Den Rest habe ich verstanden, auch wenns nicht so ganz logisch ist
Noch mal Danke an alle! =D>
ich habe auch irrtümlich LHL als H02 gelesen weil ich das schreib/Lese Bit nicht (als Adresse)
mit beachtet habe...muss man aber doch und dann......
10000101 = H45 schreiben
10000100 = H44 lesen
...kommt auch die richtige Adresse heraus. beim A Typ dann halt.
01110101 = H75 schreiben
01110100 = H74 lesen
Wenn mann es so liest braucht man auch nichts mehr * 2 zu nehmen.
Gruß Richard
Lesezeichen