/* XXX simplify */ static int max1111_adc_value_avg(int chan, int pause) { int val[5]; int sum; int minv, maxv, v; int i; DPRINTF(("max1111_adc_value_avg: chan = %d, pause = %d\n", chan, pause)); for (i = 0; i < 5; i++) { val[i] = max1111_adc_value(chan); if (i != 4) delay(pause * 1000); DPRINTF(("max1111_adc_value_avg: chan[%d] = %d\n", i, val[i])); } /* get max value */ v = val[0]; minv = 0; for (i = 1; i < 5; i++) { if (v < val[i]) { v = val[i]; minv = i; } } /* get min value */ v = val[4]; maxv = 4; for (i = 3; i >= 0; i--) { if (v > val[i]) { v = val[i]; maxv = i; } } DPRINTF(("max1111_adc_value_avg: minv = %d, maxv = %d\n", minv, maxv)); sum = 0; for (i = 0; i < 5; i++) { if (i == minv || i == maxv) continue; sum += val[i]; } DPRINTF(("max1111_adc_value_avg: sum = %d, sum / 3 = %d\n", sum, sum / 3)); return sum / 3; }
/* XXX simplify */ int max1111_adc_value_avg(int chan, int pause) { int val[5]; int i, j, k, x; int sum = 0; for (i = 0; i < 5; i++) { val[i] = max1111_adc_value(chan); if (i != 4) delay(pause * 1000); } x = val[0]; j = 0; for (i = 1; i < 5; i++) { if (x < val[i]) { x = val[i]; j = i; } } x = val[4]; k = 4; for (i = 3; i >= 0; i--) { if (x > val[i]) { x = val[i]; k = i; } } for (i = 0; i < 5; i++) { if (i == j || i == k) continue; sum += val[i]; } return (sum / 3); }