An Deiner Stelle würde ich den Code auf ein Minimum reduzieren, also die reine SPI-Ausgabe mit einem Delay danach. Sonst kannst Du Seiteneffekte aus dem anderen Code nicht ausschließen. Auch würde ich über ein vernünftiges Einrücken nachdenken, der Code ist im Moment unübersichtlich.
Du brauchst auch kein Interrupt = On und Enable SPI, da Du keinen Interrupt verwendest. Und eine Stack- und Framedefinition im Code wär' sinnvoll.
Teste das dann mal in dieser Weise:
Code:
' ...
Dim Expdr(3) As Byte
Expdr(1) = &b10101010
Expdr(2) = &b11110000
Expdr(3) = &b00001111

Do
  Spiout Expdr(1) , 3
' ...