From 45833f980001efc4ee7468187a4a37042776e12e Mon Sep 17 00:00:00 2001 From: dalmais Date: Sun, 1 May 2005 15:50:15 +0000 Subject: rajout de l'envoie des valeurs de la tourelle. BORDEL !! --- n/es/src/main.c | 56 +++++++++++++++++++++++++++++++++++++---------------- n/es/src/tourelle.c | 2 +- 2 files changed, 40 insertions(+), 18 deletions(-) (limited to 'n') diff --git a/n/es/src/main.c b/n/es/src/main.c index 7eedb9f..973e320 100644 --- a/n/es/src/main.c +++ b/n/es/src/main.c @@ -40,16 +40,23 @@ uint8_t etat = 1; // etat de fonctionnement du module uint8_t sens = 1; // sens du scan uint8_t continu = 0; // demande fait d'un envoi en continu sur le RS232 uint8_t envoie = 0; // demande fait par I2C d'un envoi + volatile uint8_t clk = 0; // clock de la machine d'état. char buffer_serie ; // buffer RS232 const uint16_t prescaler = 8;// prescaler -uint16_t tableau_longueur[25]; -uint16_t stockage_valeur_pont[4][3]; uint16_t SEUIL = 0x0100; + +uint8_t delay; +uint16_t tableau_longueur_tourelle[25]; +uint8_t angle_tourelle[2]; +uint16_t stockage_valeur_pont[4][3]; +uint8_t nombre_valeur_tourelle = 0; + uint8_t action_tourelle; uint8_t ascenseur; uint8_t ventouse; uint8_t pont; + uint8_t nb_valeur_socle = 0; uint8_t socle = 1; uint8_t pin_socle1 = 0; @@ -58,7 +65,7 @@ uint8_t valeur_socle1 = 0; uint8_t valeur_socle2 = 0; uint8_t SEUIL_SOCLE = 100; uint8_t tableau_socle[16]; -uint8_t temp = 0; +int8_t temp = 0; uint8_t etat_socle = 0; void pont_init() @@ -113,24 +120,41 @@ int main (void) clk = 0; TCNT1 = 350; //(65535L - ((20L*14745600L)/(1024L*1000L))); // LE PASSER EN COMPARATEUR. - if(temp_sens != sens) - { - temp_sens = sens; // permet de savoir quand on a fini un tour - } TIMSK |= 0x04; if(action_tourelle == 1) // activation des fonctions lié au capteur de proximité { - tableau_longueur[2]=tableau_longueur[1]; - tableau_longueur[1]=tableau_longueur[0]; - tableau_longueur[0]=mesurer(); - if(tableau_longueur[0] > SEUIL && tableau_longueur[1] > SEUIL && tableau_longueur[2] > SEUIL) + // on envoie les valeurs lorsque l'on change de sens. + if(temp_sens != sens) + { + temp_sens = sens; // permet de savoir quand on a fini un tour + proto_send1b ('t',nombre_valeur_tourelle); + if(nombre_valeur_tourelle > 0) + { + proto_send1b ('u',angle_tourelle[0]); + proto_send1w ('v',tableau_longueur_tourelle[angle_tourelle[0]]); + } + if(nombre_valeur_tourelle > 1) + { + proto_send1b ('w',angle_tourelle[1]); + proto_send1w ('x',tableau_longueur_tourelle[angle_tourelle[1]]); + } + nombre_valeur_tourelle = 0; + + } + + tableau_longueur_tourelle[2]=tableau_longueur_tourelle[1]; + tableau_longueur_tourelle[1]=tableau_longueur_tourelle[0]; + tableau_longueur_tourelle[0]=mesurer(); + if(tableau_longueur_tourelle[0] > SEUIL && tableau_longueur_tourelle[1] > SEUIL && tableau_longueur_tourelle[2] > SEUIL) { - proto_send1w ('S',tableau_longueur[0]); - cli (); + if(tableau_longueur_tourelle[1] > tableau_longueur_tourelle[0] && tableau_longueur_tourelle[1] > tableau_longueur_tourelle[2]) + if(nombre_valeur_tourelle < 3) + { + angle_tourelle[nombre_valeur_tourelle] = delay; + nombre_valeur_tourelle ++; + } } - // else - // proto_send1w ('P','0'); TournerTourelle(); } @@ -201,8 +225,6 @@ int main (void) etat_socle = tableau_socle[temp]; tableau_sharp[6] = etat_socle >> 3; - // twi_update ((uint8_t *) (etat_socle >> 3)); - // // RASSEMBLER TOUS LES CAPTEURS DANS 1 TWI } switch(asc_message) /* Affiche les messages de retour de diff --git a/n/es/src/tourelle.c b/n/es/src/tourelle.c index 6ae8f10..a6d7473 100644 --- a/n/es/src/tourelle.c +++ b/n/es/src/tourelle.c @@ -30,7 +30,7 @@ const uint8_t delayMax = 100; const uint8_t delayMin = 200; const uint8_t pin_sharp = 3 ; -uint8_t delay = 0; +extern uint8_t delay; //extern uint16_t SEUIL = 280; // 10 cm = 2.25Vnet 80 cm = 1.75 V const uint8_t MILIEU = 2; // const int8_t PROUT = 12; A VERIFIER !! -- cgit v1.2.3