Hallo Einsteiger,
eine sehr gute Beschreibung der Hardware mit Schaltplan findest Du hier:
http://www.horter.de/i2c/i2c-ausgabe/ausgabe_2a.html
Gruß Christian
Hallo Einsteiger,
eine sehr gute Beschreibung der Hardware mit Schaltplan findest Du hier:
http://www.horter.de/i2c/i2c-ausgabe/ausgabe_2a.html
Gruß Christian
Also Leute, danke für eure Antworten.
Doch es will noch nicht gehen...
Hie der Code :
Zu A0-2 hab ich es so gemacht wie empfohlen: kleinste Adresse -> daraus folgere ich A0-2 auf GND ??Code:$regfile = "m32def.dat" $crystal = 16000000 $hwstack = 200 $swstack = 200 $framesize = 400 'TWI konfigurieren Config Sda = Portc.1 Config Scl = Portc.0 Config Twi = 100000 'TWI Frequenz 'Adresse des PCF Const Pcf8574w = &H40 Const Pcf8574r = &H41 Dim Bitmuster As Byte Bitmuster = 1 'I²C initialisieren I2cinit Do I2cstart 'TWI Startkondition I2cwbyte Pcf8574w I2cwbyte Bitmuster I2cstop Wait 1 I2cstart 'TWI Startkondition I2cwbyte Pcf8574w I2cwbyte 0 I2cstop Wait 1 Loop End
eine LED an P0 angeschlossen. Müsste die dann nicht leuchten ?? Oder habe ich mal wieder einen Denkfehler ??
Ich hoffe ihr könnt mir helfen ...
Welchen Typ hast du genau? Es gibt den PCF8574 und den PCF8574A. Das hier auf Seite 9.
Die Adresse ist einmal Hex 40 (bzw 41) und einmal Hex 70 (bzw 71).
MfG Hannes
Ich habe den PCF 8574 P von Reichelt.
Muss ich INT irgendwie verbinden ??
Der Int kann unbeschalten bleiben. Dieser ist nur dafür gedacht wenn man den µC signalisieren will das neue Daten anliegen (wenn man einen oder mehrere I/O als Eingang verwendet). Ich kenne mich mit Bascom nicht aus, aber versuche einmal den Gesamten Port zu beschreiben. Eventuell im Sekundentakt die Werte ändern (z.B. gesamten Port 0 und dann 1). MfG Hannes
Ich habe den Fehler gefunden
Es lag daran dass ich die Widerstände an SCL und SDA vergessen hab ( ich habe nicht RN-Control sondern mein eigenes Board genutzt, welches diese Widerstände nicht hat).
Jetzt geht es also und summt vor sich hin und blinkt dazu :
Code:$regfile = "m32def.dat" $crystal = 16000000 $hwstack = 200 $swstack = 200 $framesize = 400 Config Portd.7 = Output 'TWI konfigurieren Config Sda = Portc.1 Config Scl = Portc.0 Config Twi = 100000 'TWI Frequenz 'Adresse des PCF Const Pcf8574w = &H40 Const Pcf8574r = &H41 Sound Portd.7 , 400 , 450 Sound Portd.7 , 400 , 250 Sound Portd.7 , 400 , 450 Wait 1 'I²C initialisieren I2cinit Sound Portd.7 , 400 , 450 Do I2cstart 'TWI Startkondition I2cwbyte Pcf8574w I2cwbyte &B00000000 I2cstop Sound Portd.7 , 400 , 450 Wait 1 I2cstart 'TWI Startkondition I2cwbyte Pcf8574w I2cwbyte &B11111111 I2cstop Sound Portd.7 , 400 , 450 Wait 1 Loop End
Kann ich, wenn ich neue Prog proggen möchte auch die Kabel und Verbindungen zum PCF dranlassen ??
Wie soll es jetzt weiter gehen ??
Hallo Einsteiger,
für einen PCF8574 (alle Adressanschlüsse auf low) schaltet man folgendermaßen alle LED´s aus:
Zum Einschalten mußt Du statt 1 eine 0 schreiben. Alle LES´s an:Code:I2cstart I2cwbyte &B01000000 'Adresse I2cwbyte &B11111111 'Daten I2cstop
Geht natürlich auch gemischt in jeder Kombination.Code:I2cstart I2cwbyte &B01000000 'Adresse I2cwbyte &B00000000 'Daten I2cstop
Gruß Christian
Und wie kann ich einen Eingang auslesen ??
Hey,
das machst du einfach mit einem I2crbyte, statt dem I2cwbyte um die Daten zu schreiben.
Das Datenbyte enthält den Status ALLER GPIOs.Code:I2cstart I2cwbyte Adresse I2crbyte MeineVariable, Nack I2cstop
Um den Status von GPIO 0 zu erhalten musst du es maskieren:
Status = MeineVariable AND &B00000001
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Ok. Danke![]()
Lesezeichen