Ах вот в чем дело, у вас тут ICC оказывается? Конечно! Вы хоть в код, который он генерит, заглядывали? Если нет, то ничего удивительного, что пауза между байтами у вас больше в 10 раз чем длительность передачи байта

- это я из другой, поднятой вами, темы почерпнул...
Берите IAR или GNU-C и пишите следующий код (для передачи)
Код
void send(char *p, char len)
{
char temp;
if (!len) return;
do
{
temp=*p++;
while(SPSR&(1<<SPIF));
SPDR=temp;
}
while(--len);
}
Поверьте, у вас будет нормальная скорость...
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин