summaryrefslogtreecommitdiff
path: root/n/avr/adc/test_adc.c
diff options
context:
space:
mode:
Diffstat (limited to 'n/avr/adc/test_adc.c')
-rw-r--r--n/avr/adc/test_adc.c68
1 files changed, 21 insertions, 47 deletions
diff --git a/n/avr/adc/test_adc.c b/n/avr/adc/test_adc.c
index 11a551d..b01b7a0 100644
--- a/n/avr/adc/test_adc.c
+++ b/n/avr/adc/test_adc.c
@@ -23,9 +23,12 @@
#include <n/avr/proto/proto.h>
#include <n/avr/rs232/rs232.h>
#include <n/avr/utils/utils.h>
+#include <n/avr/twi-slave/twi_slave.h>
#include "adc.h"
+#include <avr/interrupt.h>
+
/* +AutoDec */
/* -AutoDec */
@@ -55,64 +58,35 @@ proto_putc (uint8_t c)
int
main (void)
{
- uint16_t adc0 =0 ;
- uint16_t adc1 =0 ;
- uint16_t adc2 =0 ;
+ uint16_t adc[3];
+ int i;
go = 0;
rs232_init ();
proto_send0 ('z');
-
- while (!go)
- {
- if (rs232_poll ())
- proto_accept (rs232_getc ());
- }
-
- adc_init();
+ sei ();
+ adc_init ();
+ twi_init (0x02);
while (1)
{
delay_ms (100L);
- /* Démarre une acquisition de mesure sur l'adc 0 */
- adc_start(0x00);
-
- /* Attente active sur adc jusqu'a ce que la valeur soit disponible
- * */
- while (adc_checkf() !=0)
+ /* Démarre une acquisition de mesure sur l'adc 0. */
+ for (i = 0; i < 3; i ++)
{
- rs232_putc ('0');
- }
- /*lit l'adc
- */
- adc0 = adc_read();
+ adc_start (i);
-
- /* 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');
+ /* Attente active sur adc jusqu'a ce que la valeur soit disponible. */
+ while (adc_checkf() !=0)
+ ;
+ /* Lit l'adc. */
+ adc[i] = adc_read();
}
-
- 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_send3w('m',adc0,adc1,adc2);
+
+ /* Lit la valeur puis l'envoit. */
+ if (go)
+ proto_send3w ('m', adc[0], adc[1], adc[2]);
+ twi_update ((uint8_t *) adc, 6);
if (rs232_poll ())
proto_accept (rs232_getc ());
}
-
return 0;
}