2.1.1 Single Conversion Mode
Task: Single Conversion on ADC channel 0.
In this program, the ADC module is initialized with a single conversion in
the adc_single_conversion()
routine. The
adc_single_conversion()
routine has to be called whenever the
application needs an ADC conversion.
- Set the MUX bit fields (MUX3:0) in the ADC's MUX register (ADMUX) equal to 0000 to select ADC Channel 0.
- Set the Voltage Reference bit fields (REFS1:0) in ADMUX equal to 00 to select Internal 1.1V reference.
- Set the ADC Enable bit (ADEN) in ADC Control and Status Register A (ADCSRA) to enable the ADC module.
- Set the ADC Pre-scalar bit fields (ADPS2:0) in ADCSRA equal to 100 to prescale the system clock by 16.
- Set the Start Conversion bit (ADSC) in ADCSRA to start a single conversion.
- Poll (wait) for the Interrupt Flag (ADIF) bit in the ADCSRA register to be set, indicating that the conversion is completed.
- After the ADIF bit becomes high, read the ADC data register pair (ADCL/ADCH) to get the 10-bit ADC result.