@Blood: wen du die Slave Lib vin MCS verwendest must du nichts von registern verstehen... verstehe auch nix davon 
bei aktivitäten auf dem I2C bus werden einfach die entsprechenden ISR Rutinen aufgerufen...
hier mal ein kleiner code wie ich es gemacht habe um 2 bytes im slave zu empfangen... ich hoffe man versteht es...
Code:
'die variable empfangen wird auf 2 bytes definiert wenn mehrere bytes empfangen werden sollen muss diese entsprechend erhöt werden...
Dim Empfangen(2) As Byte
Dim Index As Byte
'Hier wird die adresse für den Slave gesetzt
Config Twislave = &H70 , Btr = 1 , Bitrate = 100000
Enable Interrupts
Do
nop
Loop
End
Twi_stop_rstart_received:
'Master hat Stop oder restard gesendet
Return
Twi_addressed_goread:
'wir wurden adressiert und master will daten lesen
Return
Twi_addressed_gowrite:
'wir wurden vom master adressiert und der master will bytes senden
'variable index auf 0 setzen
Index = 0
Return
Twi_gotdata:
Incr Index
'Index wird bei jedem empfangenen byte erhöt empfangen(1) enthält das erste byte empfangen(2) das zweite byte
Empfangen(index) = Twi
'twi enthält das momentan empfangene byte
Return
Twi_master_needs_byte:
Return
Twi_master_need_nomore_byte:
Return
Lesezeichen