Jetzt noch kurz eine Vermutung warum Du oben mit der Lib auf dem M32 Probleme hast.
Du hast da einfach nicht bedacht das die RP6Control_I2CMasterLib mit eingebunden ist.
Der Code gehört natürlich mit zum Programm!

#define INT0_STATUS_CHECK 0

und


#define MEASURE_US_LEFT_LOW 0

sind hier beide auf derselben Request ID.
--> Schlecht.
Also bitte alle Deine eigenen request IDs um 1 erhöhen.


Dann noch folgendes aus einem der Beispielprogramme lesen:

Code:
/**
 * The I2C_requestedDataReady Event Handler is now a lot smaller. 
 * It is free for your own request routines. 
 * You can put them in the Block of the if condition.
 * (similar to the RP6 Base Example programs...)
 */
void I2C_requestedDataReady(uint8_t dataRequestID)
{
    // We need to check if this is an INT0 Request from the Robot Base unit.
    // The Function call inside the if condition returns true if it was an
    // interrupt request, so we have to negate it here and if it was NOT
    // an interrupt request from the Robot base we can check any other sensors
    // from which you may have requested data...

    if(!checkRP6Status(dataRequestID)) 
    {
        // Here you can Check other sensors/microcontrollers with their own
        // request IDs - if there are any... 
    }
}


Dein Code gehört also eigentlich in die If Bedingung rein.
Nicht davor.
Das alleine wäre aber nicht so schlimm, problematischer
ist da schon das mit der doppelt belegten request ID.

Das kommt sich natürlich in die Quere da ja beides gleichzeitig läuft...



Ob das das einzige Problem ist oder noch an anderer Stelle irgendwas nicht stimmt habe ich jetzt nicht genauer untersucht.
Aber ändere erstmal das und teste es dann nochmal.

Hattest Du am Slave Code von der RP6Base irgendwas geändert?
(Ich frage nur weil Du den Code hier gepostet hattest, auf den ersten blick sieht der unverändert aus)

MfG,
SlyD