From c255c1342424563ca78eae4eb6e5cd794f85e640 Mon Sep 17 00:00:00 2001 From: dalmais Date: Sun, 1 May 2005 11:16:45 +0000 Subject: rajout de la moyenne de 4 valeurs de pont. A POILLLLL !!!! --- n/es/src/main.c | 55 ++++++++++++++++++++++++++++++++++++++++++----------- n/es/src/tourelle.c | 2 +- 2 files changed, 45 insertions(+), 12 deletions(-) (limited to 'n') diff --git a/n/es/src/main.c b/n/es/src/main.c index fbdab49..7eedb9f 100644 --- a/n/es/src/main.c +++ b/n/es/src/main.c @@ -34,6 +34,7 @@ /* -AutoDec */ void proto_callback (uint8_t cmd, uint8_t size,uint8_t* args); +void pont_init (void); uint8_t etat = 1; // etat de fonctionnement du module uint8_t sens = 1; // sens du scan @@ -43,8 +44,9 @@ volatile uint8_t clk = 0; // clock de la machine d' 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 mesure; +uint8_t action_tourelle; uint8_t ascenseur; uint8_t ventouse; uint8_t pont; @@ -59,6 +61,17 @@ uint8_t tableau_socle[16]; uint8_t temp = 0; uint8_t etat_socle = 0; +void pont_init() +{ + int compteur = 0; + + for(temp=0;temp<4;temp++) + for(compteur=0;compteur<3;compteur++) + stockage_valeur_pont[temp][compteur] = 0; + +} + + int main (void) { uint8_t temp_sens = 1; @@ -72,14 +85,16 @@ int main (void) DDRC = 0x00; rs232_init (); - proto_send0('z'); + proto_send0('z'); + pont_init(); twi_init (0x02); tourelle_init (prescaler); ascenseur_init (); + pont_init (); // adc_init (); ascenseur = 1; pont = 0; - mesure = 0; + action_tourelle = 0; etat = 1; clk = 1; @@ -104,7 +119,7 @@ int main (void) } TIMSK |= 0x04; - if(mesure == 1) // activation des fonctions lié au capteur de proximité + if(action_tourelle == 1) // activation des fonctions lié au capteur de proximité { tableau_longueur[2]=tableau_longueur[1]; tableau_longueur[1]=tableau_longueur[0]; @@ -121,13 +136,31 @@ int main (void) if(pont == 1) // activation des fonctions associées au pont { + for(temp = 0; temp < 3; temp++) //on décale les valeurs + { + for(compteur = 0; compteur < 3; compteur++) stockage_valeur_pont[temp+1][compteur] = stockage_valeur_pont[temp][compteur]; + + } + for(compteur=0;compteur<3;compteur++) { adc_start (compteur); // pin selectionnee while(!adc_checkf()){} - tableau_sharp[compteur]=adc_read(); + stockage_valeur_pont[0][compteur]=adc_read(); } + + // traitement + + for(compteur = 0; compteur < 3; compteur++) //on décale les valeurs + { + tableau_sharp[compteur] = 0; + for(temp = 0; temp < 4; temp++) tableau_sharp[compteur] += stockage_valeur_pont[temp][compteur]; + tableau_sharp[compteur] /= 4; + } + + + } if(ascenseur == 1) // activation des fonctions liées à l'ascenseur @@ -187,14 +220,14 @@ int main (void) case 3 : proto_send0('I'); break; } - if (socle == 1 && pont == 1) - twi_update ((uint8_t *) tableau_sharp,7); - if (socle == 1 && pont == 0) - twi_update ((uint8_t *) &(tableau_sharp[6]),1); - if (socle == 0 && pont == 1) - twi_update ((uint8_t *) tableau_sharp,6); + if (socle == 1 && pont == 1) twi_update ((uint8_t *) tableau_sharp,7); + if (socle == 1 && pont == 0) twi_update ((uint8_t *) &(tableau_sharp[6]),1); + if (socle == 0 && pont == 1) twi_update ((uint8_t *) tableau_sharp,6); } + + + } return 0; } diff --git a/n/es/src/tourelle.c b/n/es/src/tourelle.c index 80b9610..6ae8f10 100644 --- a/n/es/src/tourelle.c +++ b/n/es/src/tourelle.c @@ -48,7 +48,7 @@ extern uint8_t continu; extern uint8_t etat; extern uint8_t envoie; extern uint8_t sens; -extern uint8_t mesure; +extern uint8_t action_tourelle; extern uint8_t pont; extern uint8_t clk; extern uint8_t ascenseur; -- cgit v1.2.3