Vielen Dank, damit hast du mir schon sehr weitergeholfen.
Ich hab jetzt den code ausprobiert.
Sieht so aus:
Code:
$regfile = "M32def.dat" ' the used chip
$crystal = 16000000 ' frequency used
$baud = 9600
$lib "i2c_twi.lbx" ' Für Hardware TWI
Config Twi = 400000 ' Init TWBR und TWSR
' TWI gleich einschalten, das macht Bascom ansonsten erst beim I2CStart !
TWCR = &B00000100 ' nur TWEN setzen
Const Pcf_write = &H68 ' Slaveadresse
' Startausgabe
Print
Print "I2C-TWI Demo mit ATmega8"
Print
Do
I2cstart
I2cwbyte Pcf_write
I2cwbyte &H11
I2cstop
Print Err ' Err = 0 -> kein Fehler !
Waitms 500
I2cstart
I2cwbyte Pcf_write
I2cwbyte &H10
I2cstop
Print Err ' Err = 0 -> kein Fehler !
Waitms 500
Loop
End
Leider bekomme ich immernoch 1 zurück. Also steckt iwo noch ein Fehler drinne
Edit:
Was mich auch wundert ist folgendes im Beispiel:
Beispielprogramm sendet ein Byte zum Slave mit Adresse 64 (0x40 bzw. &H40):
Warum wird dort die Adresse denn nicht um ein Bit verschoben?
Dort wird ja der gleiche Hex-Wert genommen./?
Lesezeichen