Hi,
ich bin jetzt kein Bascom-Programmierer, kann also sein, dass die Syntax des Programms nicht ganz richtig ist, ich setzte aber den I2C-Bus sehr oft ein. So, wie ich den Sensor verstanden habe, musst Du zuerst den Befehl senden, der angibt, was Du auslesen willst:
Danach liest Du vom Sensor. Das geht leider nicht direkt in einem:Code:I2cstart I2cwbyte &H54 I2cwbyte &HB6 I2cstop
Man kann das auch mit einem REPEATED START machen und sich ein STOP sparen:Code:I2cstart I2cwbyte &H55 I2crbyte Lesen1 , Nack I2cstop
Wichtig ist: Gerade Adressen signalisieren einen Schreibvorgang an den Slave, ungerade Adressen einen Lesevorgang vom Slave.Code:I2cstart I2cwbyte &H54 I2cwbyte &HB6 I2cstart I2cwbyte &H55 I2crbyte Lesen1 , Nack I2cstop
Noch was: Die Leitungen SDA und SCL brauchen Pull-Up-Widerstäde. Wenn die nicht da sind, geht die Übertragung schief.
Viele Grüße,
Markus







Zitieren

Lesezeichen