Master:

Du hast anscheinend SPI noch nicht 100%ig verstanden. Der Master kann sich nicht hinsetzen und auf eine Übertragung warten. Er ist es, der die Übertragung vornimmt, auch für Daten vom Slave zum Master.

Slave:

1) "!" bindet stärker als "&", also fehlt da noch ein Klammerpaar.
2) Das Zurücksetzen des Flags fehlt.