Hallo,

das Problem bei der Interruptbasierten Versendung ist, dass dies asynchron geschieht. DH. der Slave weiss nicht wann er was Senden soll wenn der Master was anfordert.
Einfach was in den Ausgangspuffer schreiben ist auch nicht unbedingt die Lösung, weil man nicht weiss ob es überhaupt abgeholt wird.

Du kannst aber mal rumprobieren, in der Main-Loop gibts eig. nur eine If-Abfrage, in die nur reingesprungen wird, wenn etwas Empfangen wurde.
Den Ausgangspuffer nur so gross, wie die Anzahl Bytes die auf einmal zum Master übertragen werden sollen. Damit es keine "alten" Daten gibt. Dann Regelmässig diese mit den entsprehenden Daten füllen, aber nur überschreiben, wenn der Master nicht grad am lesen des Puffers ist.

HTH