From 4e341a59f476d585db179ba88ab77078b39b0bbe Mon Sep 17 00:00:00 2001 From: burg Date: Sat, 16 Apr 2005 23:59:52 +0000 Subject: version de je sais pas quand mais qui marche ... --- n/avr/adc/adc.c | 1 + n/avr/adc/test_adc.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 56 insertions(+), 5 deletions(-) (limited to 'n') diff --git a/n/avr/adc/adc.c b/n/avr/adc/adc.c index 1ebed72..905ec19 100644 --- a/n/avr/adc/adc.c +++ b/n/avr/adc/adc.c @@ -61,6 +61,7 @@ void adc_start (uint8_t d) { /* Choose adc. */ + ADMUX &= 0xe0; ADMUX |= d & 0x07; /* ADEN active l'adc * ADSC demarre la mesure */ diff --git a/n/avr/adc/test_adc.c b/n/avr/adc/test_adc.c index 407bc71..11a551d 100644 --- a/n/avr/adc/test_adc.c +++ b/n/avr/adc/test_adc.c @@ -22,15 +22,27 @@ * }}} */ #include #include +#include #include "adc.h" /* +AutoDec */ /* -AutoDec */ +uint8_t go; + void proto_callback (uint8_t cmd, uint8_t size, uint8_t *args) { + switch (cmd) + { + case 'z': + reset (); + break; + case 'm': + go = 1; + break; + } proto_send (cmd, size, args); } @@ -43,14 +55,23 @@ proto_putc (uint8_t c) int main (void) { + uint16_t adc0 =0 ; + uint16_t adc1 =0 ; + uint16_t adc2 =0 ; + go = 0; rs232_init (); - rs232_putc ('!'); - rs232_putc ('z'); - rs232_putc ('\r'); + proto_send0 ('z'); + + while (!go) + { + if (rs232_poll ()) + proto_accept (rs232_getc ()); + } adc_init(); while (1) { + delay_ms (100L); /* Démarre une acquisition de mesure sur l'adc 0 */ adc_start(0x00); @@ -58,11 +79,40 @@ main (void) * */ while (adc_checkf() !=0) { - rs232_putc ('.'); + rs232_putc ('0'); + } + /*lit l'adc + */ + adc0 = adc_read(); + + + /* Démarre une acquisition de mesure sur l'adc 1 */ + adc_start(0x01); + + /* Attente active sur adc jusqu'a ce que la valeur soit disponible + * */ + while (adc_checkf() !=0) + { + rs232_putc ('1'); + } + + adc1 = adc_read(); + /* Démarre une acquisition de mesure sur l'adc 2 */ + adc_start(0x02); + + /* Attente active sur adc jusqu'a ce que la valeur soit disponible + * */ + while (adc_checkf() !=0) + { + rs232_putc ('2'); } + adc2 = adc_read(); /*Lit la valeur puis l'envoit */ - proto_send1w('m',adc_read()); + proto_send3w('m',adc0,adc1,adc2); + if (rs232_poll ()) + proto_accept (rs232_getc ()); } + return 0; } -- cgit v1.2.3