unsigned char SSC_WriteBuffer(AT91S_SSC *ssc, void *buffer, unsigned int length) { // Check if first bank is free if (ssc->SSC_TCR == 0) { ssc->SSC_TPR = (unsigned int) buffer; ssc->SSC_TCR = length; ssc->SSC_PTCR = AT91C_PDC_TXTEN; return 1; } // Check if second bank is free else if (ssc->SSC_TNCR == 0) { ssc->SSC_TNPR = (unsigned int) buffer; ssc->SSC_TNCR = length; return 1; } // No free banks return 0; }