summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordalmais2005-05-01 15:50:15 +0000
committerdalmais2005-05-01 15:50:15 +0000
commit45833f980001efc4ee7468187a4a37042776e12e (patch)
tree99a481c44b055b4832d0efa0ace667599bdc357d
parentaecaf24c22013482de84ac6567249bec5ae7c78e (diff)
rajout de l'envoie des valeurs de la tourelle.
BORDEL !!
-rw-r--r--n/es/src/main.c56
-rw-r--r--n/es/src/tourelle.c2
2 files changed, 40 insertions, 18 deletions
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 !!