Zu I2C gibt es schon diverse Samples (Beispiele)
- ' file: I2C.BAS
' demo: I2CSEND and I2CRECEIVE
oder in der Hilfe
- I2CSEND , I2CRECEIVE , I2CSTART , I2CSTOP, I2CRBYTE , I2CWBYTE, CONFIG SDA ,CONFIG SCL , CONFIG I2CDELAY
Hier ein Demo um 15 Bytes in ein Array zu lesen
Code:
$regfile = "m32def.dat" ' the used chip
$crystal = 8000000
$baud = 19200
' baud rate
Config Sda = Portb.5
Config Scl = Portb.7
Const Slave = &H120
Dim Buf(15) As Byte
I2creceive Slave , Buf(1) , 0 , 15 'send 0 bytes and receive 15 byte
End
Wenn Du vorher einige Bytes an den Slave senden willst /z.B. 2 Bytes da musst du in das Array zunächst die zu sendenden Werte schreiben, den Befehl ändern "I2creceive Slave , Buf(1) , 2 , 15"
Das Array wird dann mit den empfangen Werten überschrieben.
Lesezeichen