Hallöle,
einen Interrupt ist, wenn ich den Quelltext von AN1003 (MSD-Karte an PIC) richtig verstehe, eigentlich Quatsch. Man kann sogar den ganzen Kram im normalen Programmteil beschleunigen:

_SCE=0; //Anzeige einschalten
for (iByte=0;iByte<Anzahl;++iByte)
SSPBUF=Puffer[iByte];
_SCE=1;

Erklärung: Die Schleife läuft 21 Befehlstakte lang, dass SPI Schieberegister braucht aber nur 16 Takte zum versenden der 8 Bits, vorausgesetzt es ist fosc/8 eingestellt ist => bei 20MHz sendet PIC mit 2,5Mbit/Sek

Also ist ein Byte schneller raus als ein Schleifendurchlauf dauert. Deshalb geht das hier so einfach

Sagt mir, wenn Ihr's anders seht, ich hab's noch nicht ausprobiert

Grüße,
Christoph

P.S. [-X Die Angabe im Datenblatt, dass das SPI des PIC18F4550 2Mbit/Sek (S.200) macht ist ein Tippfehler. Es muss 12Mbit/Sek heißen.