aboutsummaryrefslogtreecommitdiff
path: root/kernel/adc.c
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-01-05 10:02:06 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-01-05 10:02:06 +0000
commit97bf1e88bfde9107f9aec66603ce48b0bdee4351 (patch)
tree4ef058be373546966b0a9952487b72401878105b /kernel/adc.c
parent495bcb6f508f1da654795c7f3e0379ec1d63751e (diff)
lightwight blocking, change ADC from 10 to 8 bit resolution
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]);