aboutsummaryrefslogtreecommitdiff
path: root/kernel/adc.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/adc.c')
-rw-r--r--kernel/adc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/adc.c b/kernel/adc.c
index ac28789..aa23ffb 100644
--- a/kernel/adc.c
+++ b/kernel/adc.c
@@ -35,12 +35,12 @@ adc(void *arg)
for (;;) {
for (i = 0; i < ADCCHANNELS; i++) {
- ADMUX = i & MUXMASK;
+ ADMUX = (i & MUXMASK) | _BV(ADLAR);
ADCSRA |= _BV(ADSC);
loop_until_bit_is_clear(ADCSRA, ADSC);
- wait(4);
- a->value[i] = ADCW;
- signal(4);
+ cli();
+ a->value[i] = ADCH; /* ADLAR: 8-bit */
+ sei();
}
wait(0);
fprintf(stderr, "\n%8lx%8x", now(), a->value[0]);