unsigned char SSC_ReadBuffer(AT91S_SSC *ssc, void *buffer, unsigned int length) { // Check if the first bank is free if (ssc->SSC_RCR == 0) { ssc->SSC_RPR = (unsigned int) buffer; ssc->SSC_RCR = length; ssc->SSC_PTCR = AT91C_PDC_RXTEN; return 1; } // Check if second bank is free else if (ssc->SSC_RNCR == 0) { ssc->SSC_RNPR = (unsigned int) buffer; ssc->SSC_RNCR = length; return 1; } // No free bank return 0; }