summaryrefslogtreecommitdiff
path: root/n
diff options
context:
space:
mode:
Diffstat (limited to 'n')
-rw-r--r--n/avr/adc/adc.c1
-rw-r--r--n/avr/adc/test_adc.c60
2 files changed, 56 insertions, 5 deletions
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 <n/avr/proto/proto.h>
#include <n/avr/rs232/rs232.h>
+#include <n/avr/utils/utils.h>
#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;
}