Цитата(aaarrr @ Feb 28 2008, 23:58)

Лучше напишите, что именно посылаете, и что приходит в ответ. Похоже что карточка у Вас лишние клоки ловит.
Например шлю CMD0
Потом начинаю слать FF, что бы получить ответ.
Вижу на осциллоографе, что карточка отвечает 0x01
Но вот беда- этот ответ начинается ПОСЕРЕДИНЕ моего FFа.
То есть в приёмном буфере микроконтроллера оказываются куски ответа.
С CMD1 та же ситуация
void sent_byte(char B )
{
SETBIT(SPCR,MSTR ); // Контроллер будет Master
SPDR=b; // Начинаем передачу
while (!TESTBIT(SPSR,SPIF )) {} ; //Ждём завершения передачи
data=SPDR;
if (!TESTBIT(data,0x07 )) received_data=data;
}
.........
CLEARBIT(PORTB,CS ); //Сбрасываем CS
sent_byte(0xFF );
sent_byte(0x40); //Передаём CMD0
sent_byte(0x0);
sent_byte(0x0);
sent_byte(0x0);
sent_byte(0x0);
sent_byte(0x95);
sent_byte(0xFF); //Ждём ответ
sent_byte(0xFF); //
sent_byte(0xFF); //
sent_byte(0xFF); //
sent_byte(0xFF); //
sent_byte(0xFF); //