Здравствуйте, подскажите что к чему.
Есть есть задача связать at91sam7s256(мастер) и attinny85(слейв) по SPI, всё сделал как написано по даташиту, связь есть но странная.От мастера к слейву данные доходят нормально а вот от слейва они как будто идут с задержкой в 2 байта.
Как будто приём SPI настроен на 24 бита.
прием мастером осуществлён вот так
Код
AT91PS_SPI pSPI = AT91C_BASE_SPI;
while( !( pSPI->SPI_SR & AT91C_SPI_TDRE ) ); // transfer compl. wait
pSPI->SPI_TDR = (dat & 0xFFFF) | (((~(1 << 2)) & 0xF)<< 16);
while( !( pSPI->SPI_SR & AT91C_SPI_RDRF ) ); // wait for char
return (unsigned char)( pSPI->SPI_RDR ); // it's important to read RDR here!
зы. тяжёло описать правельно что у меня происходит но думаю кто с этим сиалкивался поймёт.