Цитата((vS) @ Jul 13 2010, 05:05)

т.е. нужно писать свою либу или функцию?
Soft-SPI - элементарная вещь.
Снизу пример на 16 бит. Легко можно модифицировать к любому кол-ву бит.
Функция одна т.к. чтение из SPI это та же самая запись с использованием возвращаемого функций результата.
Код
#define HI(x) SPI_PORT |= (1<<(x))
#define LO(x) SPI_PORT &= ~(1<<(x))
unsigned int SPIWriteWord(unsigned int cmd) {
unsigned char i;
unsigned int recv;
recv = 0;
LO(SCK);
LO(nSS);
for(i=0; i<16; i++) {
if(cmd&0x8000) HI(SDI); else LO(SDI);
HI(SCK);
recv<<=1;
if( SPI_PIN&(1<<SDO) ) {
recv|=0x0001;
}
LO(SCK);
cmd<<=1;
}
HI(nSS);
return recv;
}