In deinem Programm kenn ich mich irgendwie gar nicht aus. Wo empfängst du das Byte? gibts da nich solche Befehle Receive?

Edit: Könntest du mir noch zeigen wie ich vom Slave auch senden kann? Die Hilfe in Bascom kann man da ja vergessen.
Ich hab jetzt dieses Programm hergenommen:
Code:
$regfile = "M32def.dat"                           ' the used chip
$crystal = 16000000                               ' frequency used
$baud = 9600                                      ' baud rate


$lib "i2c_twi.lbx"                                          ' we do not use software emulated I2C but the TWI


Config Scl = Portc.0                              ' we need to provide the SCL pin name
Config Sda = Portc.1                              ' we need to provide the SDA pin name

'On the Mega8,          On the PCF8574A
'scl=PC5 , pin 28            pin 14
'sda=PC4 , pin 27            pin 15


I2cinit                                                     ' we need to set the pins in the proper state


Config Twi = 100000                                         ' wanted clock frequency
'will set TWBR and TWSR
'Twbr = 12                                                   'bit rate register
'Twsr = 0                                                    'pre scaler bits

Dim B As Byte , X As Byte
Print "TWI master"
Do
  Input B                                         ' increase value
  I2csend &H40 , B                                    ' send the value
  Print "Error : " ; Err                                    ' show error status
  I2creceive &H41 , X                                 ' get a byte
  Print X                                         ' show error
  Print "Error" ; Err
  Waitms 500                                                'wait a bit
Loop
End
Doch wenn ich X empfangen will empfängt er nur 65 doch Err ist 0. Das bedeutet doch dass kein fehler aufgetreten ist?
Das Byte B finde ich im Slave ja gar nicht. Wie empfängt der denn das?

Wie kommst du denn aus der Hauptschleife wieder heraus?
Ich habe das Programm mal Simuliert. Der hüpft ja kreuz und quer durchs Programm. Was soll denn dann das Do Loop in der Hauptschleife?

Twcr = &B00000100
Twcr = &B01000100
das ist wohl auch doppelt oder?

Welche Adresse hat denn der Master?

So das waren jetzt etwas viel Fragen aber sonst blick ich da nie durch.