void ADCInit (void) { // Clear all previous setting and result AT91F_ADC_SoftReset (AT91C_BASE_ADC); // First step: Set the ADC by writing in Mode register AT91F_ADC_CfgModeReg (AT91C_BASE_ADC, (SHTIM << 24) | (STARTUP << 16) | (PRESCAL << 8) | (SLEEP << 5) | (LOWRES <<4) | (TRGSEL << 1) | (TRGEN )) ; // Second Step: Select the first and second active channels AT91F_ADC_EnableChannel (AT91C_BASE_ADC, (1<<CHANNEL5)); AT91F_ADC_EnableChannel (AT91C_BASE_ADC, (1<<CHANNEL6)); AT91F_ADC_EnableChannel (AT91C_BASE_ADC, (1<<CHANNEL7)); }
void ADC_Start(unsigned char ch) { AT91F_ADC_EnableChannel (AT91C_BASE_ADC, (1<<ch)); AT91F_ADC_StartConversion (AT91C_BASE_ADC); while (!((AT91F_ADC_GetStatus (AT91C_BASE_ADC)) & (1<<ch))); AT91F_ADC_DisableChannel (AT91C_BASE_ADC, (1<<ch)); }