+struct {
+ unsigned char read_zero_log : 2;
+ unsigned char read_drop_log : 2;
+ unsigned char read_keep_log : 4;
+} adc_params[NUM_ADCS] = {
+ { 0, 1, PWMLED_ADC_SHIFT }, // pwmled 1
+ { 0, 1, PWMLED_ADC_SHIFT }, // pwmled 2
+ { 0, 1, PWMLED_ADC_SHIFT }, // pwmled 3
+ { 0, 1, AMBIENT_ADC_SHIFT }, // ambient
+ { 0, 1, 0 }, // buttons
+ { 0, 1, 0 }, // battery
+ { 0, 1, 0 }, // gain20
+};
+
+volatile unsigned char adc_is_on;
+
+volatile static unsigned char current_adc, slow_adcs_wanted;
+static uint16_t adc_sum, zero_count, drop_count, read_count, n_reads_log;
+#define ADC1_GAIN20_OFFSET_SHIFT 6
+static uint16_t adc1_gain20_offset;