void SSC_Configure(AT91S_SSC *ssc, unsigned int id, unsigned int bitRate, unsigned int masterClock) { // Enable SSC peripheral clock AT91C_BASE_PMC->PMC_PCER = 1 << id; // Reset, disable receiver & transmitter ssc->SSC_CR = AT91C_SSC_RXDIS | AT91C_SSC_TXDIS | AT91C_SSC_SWRST; ssc->SSC_PTCR = AT91C_PDC_RXTDIS | AT91C_PDC_TXTDIS; // Configure clock frequency if (bitRate != 0) { ssc->SSC_CMR = masterClock / (2 * bitRate); } else { ssc->SSC_CMR = 0; } }