summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--n/es/src/avrconfig.h4
-rw-r--r--n/es/src/capteurf.c8
-rw-r--r--n/es/src/capteurf.h1
-rw-r--r--n/es/src/main.c21
4 files changed, 26 insertions, 8 deletions
diff --git a/n/es/src/avrconfig.h b/n/es/src/avrconfig.h
index fa38a0b..3fd9eb1 100644
--- a/n/es/src/avrconfig.h
+++ b/n/es/src/avrconfig.h
@@ -37,9 +37,9 @@
/** Send mode :
* - POLLING : no interrupts;
* - RING : interrupts, ring buffer. */
-#define AC_RS232_SEND_MODE POLLING
+#define AC_RS232_SEND_MODE RING
/** Recv mode, same as send mode. */
-#define AC_RS232_RECV_MODE POLLING
+#define AC_RS232_RECV_MODE RING
/** Character size : 5, 6, 7, 8, 9 (only 8 implemented). */
#define AC_RS232_CHAR_SIZE 8
/** Parity : ODD, EVEN, NONE. */
diff --git a/n/es/src/capteurf.c b/n/es/src/capteurf.c
index 0aaf2af..e59f3f6 100644
--- a/n/es/src/capteurf.c
+++ b/n/es/src/capteurf.c
@@ -26,9 +26,11 @@
#define CAPTEUR_DROIT 0x3
#define CAPTEUR_GAUCHE 0x4
+#define CAPTEUR_BAS 0x05
uint16_t capteurf_droit ;
uint16_t capteurf_gauche ;
+uint16_t capteurf_bas ;
void read_capteurf(void )
{
@@ -43,6 +45,12 @@ void read_capteurf(void )
while (adc_checkf() !=0);
delay_us(250L);
capteurf_gauche = adc_read();
+
+ //Lecture capteur bas
+ adc_start(CAPTEUR_BAS);
+ while (adc_checkf() !=0);
+ delay_us(250L);
+ capteurf_bas = adc_read();
}
diff --git a/n/es/src/capteurf.h b/n/es/src/capteurf.h
index 15241f6..b71abb8 100644
--- a/n/es/src/capteurf.h
+++ b/n/es/src/capteurf.h
@@ -28,6 +28,7 @@
extern uint16_t capteurf_droit ;
extern uint16_t capteurf_gauche ;
+extern uint16_t capteurf_bas;
void read_capteurf(void);
diff --git a/n/es/src/main.c b/n/es/src/main.c
index 10bd497..15eecb7 100644
--- a/n/es/src/main.c
+++ b/n/es/src/main.c
@@ -60,6 +60,7 @@ uint8_t ascenseur;
uint8_t ventouse;
// capteur de front
uint8_t capteurf = 0;
+uint8_t capteurf_cpt_cpt = 255;
uint8_t capteurf_cpt = 0;
uint8_t pont;
@@ -91,7 +92,6 @@ int main (void)
uint8_t temp_sens = 1;
uint8_t compteur = 0;
uint16_t tableau_sharp[3];
- uint8_t cpt;
uint8_t renvoie_tourelle;
/// intialisation
@@ -287,12 +287,19 @@ int main (void)
if (capteurf)
{
- for(cpt=0;cpt<capteurf_cpt;cpt++)
+ // if cpt = 255 don't send anything
+ if (capteurf_cpt_cpt != 255)
{
- read_capteurf();
- proto_send2w('C',capteurf_gauche,capteurf_droit);
+ // else give mesure
+ capteurf_cpt_cpt--;
+ if (capteurf_cpt_cpt == 0)
+ {
+ read_capteurf();
+ proto_send3w
+ ('C',capteurf_gauche,capteurf_droit,capteurf_bas);
+ capteurf_cpt_cpt = capteurf_cpt;
+ }
}
-
}
@@ -364,7 +371,9 @@ void proto_callback (uint8_t cmd, uint8_t size,uint8_t* args)
case c ('C',1): { // parametre le nombre de
// mesure faire dans une
// boucle
- capteurf_cpt = args[0];
+ // 255 diseable this
+ // capteur
+ capteurf_cpt_cpt = capteurf_cpt = args[0];
}break;
/* generic */
case c ('F',1): {