есть функция, которая принимает/передает данные по SPI
решил переделать с использованием PDC
написал примерно такой код:
Код
void Spi1Exec(INT8U *tx, INT8U *rx, INT16U rxtx, INT8U target)
{
....
if(rxtx)
{
pSPI1->SPI_RPR = (INT32U)rx;
pSPI1->SPI_RCR = rxtx;
pSPI1->SPI_PTCR = AT91C_PDC_RXTEN | AT91C_PDC_TXTEN;
while( !( pSPI1->SPI_SR & AT91C_SPI_ENDRX ) );
pSPI1->SPI_PTCR = AT91C_PDC_RXTDIS | AT91C_PDC_TXTDIS;
}
}
в таком виде почемуто не примимает вообще (
надо ли в этом случае инициировать pdc еще и на передачу?