Цитата(Alexey V. @ Aug 9 2007, 10:21)

есть функция, которая принимает/передает данные по SPI
решил переделать с использованием PDC
написал примерно такой код:
<skipped>
в таком виде почемуто не примимает вообще (
надо ли в этом случае инициировать pdc еще и на передачу?
Епстественно

Кто-ж клок-то будет генерировать?
Вот, как сделано у меня:
Код
// Check if there is a "stuck" byte in receive register
if (AT91C_BASE_SPI->SPI_SR & (AT91C_SPI_OVRES | AT91C_SPI_RDRF))
i=AT91C_BASE_SPI->SPI_RDR;
// Set up reception of input buffer
AT91F_SPI_ReceiveFrame(AT91C_BASE_SPI,(char*) &SPIInput[0],sizeof(SPIInput),0,0);
// Fire transmittion and reception
AT91F_SPI_SendFrame(AT91C_BASE_SPI,(char*) &OutputBuf[0],sizeof(OutputBuf),0,0);
// Wait until the reception is finished
while(!((AT91C_BASE_SPI->SPI_SR) & AT91C_SPI_RXBUFF))
vTaskDelay(portTICK_RATE_MS * 5);
// Process input
.....
При этом, прошу заметить, OutputBuf больше или равен по размеру SPIInput.