TWI_SR_DATA ist die SRAM Adresse, wo ein anderer (sende)Master seine Daten hinschreiben kann. Da man ja (oft) nicht weiss, WAS da dann kommt, ist das eben in meinem Anwendungsbeispiel nur irgend ein Byte-Array.

Ebenso ist TWI_MT_DATA die adresse des ersten (oder einzigen Bytes), das gesendet werden soll.

Bei dir ist das ja nicht so allgemein,
Denn dein Master sendet immer nur EIN Kommando Byte
und empfängt 8 temperatur-Bytes

Dein slave sendet immer 8 temperatur-Bytes
und empfängt immer das eine Kommando-Byte

Du könntest das auch für deine Zwecke spezialisieren.

Master Senden
Code:
DIM  Kommando as Byte

Jede_sekunde_mal:
    Kommando = 25
    twi_mt_data = VARPTR(Kommando)  ' daten adresse
    Twi_mst_addr = Mn2_adr                  'twi-slave adresse
    Twi_mt_cntr = 1                               '1 Byte 
    Twi_mr_cntr = 0                               ' nix holen, nur senden 
    Gosub Run_wait_master                     ' auf gehts 
---etc-etc----
Slave-Empfang
Code:
DIM  Kommando as Byte

    twi_sr_data = VARPTR(Kommando)
---etc-etc----
     If Twi_slv_flag = &H60 Then 
            if Kommando = 25 then 
                 ---- komando ausführen 
---etc-etc----

beim Rücksenden der Temperaturen:

SLave Temperaturen senden
Code:
DIM  Temp1 as Byte
DIM  Temp2 as Byte
......
DIM  Temp8 as Byte

    twi_mt_data = VARPTR(Temp1)         ' daten adresse
    Twi_mst_addr = Mn1_adr                  'twi-master adresse
    Twi_mt_cntr = 8                               '8 Byte 
    Twi_mr_cntr = 0                               ' nix holen, nur senden 
    Gosub Run_wait_master                     ' auf gehts 
---etc-etc----
Der Master hat nun ein Gegenstück
Code:
DIM  Temp1 as Byte
DIM  Temp2 as Byte
......
DIM  Temp8 as Byte

    twi_sr_data = VARPTR(Temp1)
---etc-etc----
     If Twi_slv_flag = &H60 Then 
          Temp1 --> bis Temp8   auswerten 

---etc-etc----

Zur Verwirrung: Natürlich könnte der Master sich die 8 Temperaturen auch selber holen, dann wäre der Slave nur passiv, er müßte nur bei Empfang eine Messung auslösen. Auf diese Art geht es ja meistens bei den fertigen I2C-Sensoren. Man schickt ein Kommando und liest die Daten dann aus.

Das wäre dann aber eben nicht Multimaster, sondern der übliche Master-Slave Betrieb

DIe Parameter etc. wären dann auch anders, natürlich