+ if (current_adc == ADC1_GAIN20) {
+ // running average
+ adc1_gain20_offset_x16 += adcval
+ - (adc1_gain20_offset_x16 >> 4);
+ } else if (current_adc == 0 || current_adc == 1) {
+ uint16_t offset = adc1_gain20_offset_x16 >> 4;
+ if (adcval >= offset)
+ adcval -= offset;
+ else
+ adcval = 0;
+ }
+