@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