@Mac80,

grundsätzlich sollte der Slave (Base) alle Dinge erledigen, die mit den SRF08 zu tun haben. Das heißt: In seiner task_update() müßten regelmäßig die neuen Distanzwerte in die Variablen geschrieben werden. Der Master kann sie dann über die Register 30..32 auslesen, wenn er will.
Der Slave kann natürlich auch über Int0 signalisieren, dass Daten der SRF08 anliegen. Das müßte dann in I2C_requestedDataReady() ausgewertet werden.

Hilft das?
Du müßtest also deine Programmlogik noch einmal überdenken ...