+ adc1_gain20_offset = 0;
+
+ for (i = 0; i < (1 << ADC1_GAIN20_OFFSET_SHIFT); i++) {
+ ADCSRA |= _BV(ADSC);
+
+ while ((ADCSRA & _BV(ADIF)) == 0)
+ ;
+ adc1_gain20_offset += ADCW
+ - (adc1_gain20_offset >> ADC1_GAIN20_OFFSET_SHIFT);
+
+ ADCSRA |= _BV(ADIF); // clear the IRQ flag
+ }
+
+ ADCSRA |= _BV(ADIE); // enable IRQ