Révision 346
Ajouté par casotty il y a plus de 6 ans
branch/sotty/Emb_App/programme_principal_etud.c | ||
---|---|---|
#define PISTE_ROUGE 3
|
||
#define PISTE_NOIRE 4
|
||
|
||
void strategie(void);
|
||
void couleur_piste(void);
|
||
void rotation_tourelle(unsigned int angle);
|
||
int position_tourelle(void);
|
||
... | ... | |
vit_roue = k;//**
|
||
dly_tsk(100);
|
||
}
|
||
|
||
|
||
couleur_piste();
|
||
|
||
while(1)
|
||
{
|
||
couleur_piste();
|
||
strategie();
|
||
LED_J=1;
|
||
dly_tsk(100);
|
||
LED_J=0;
|
||
... | ... | |
num_piste = send_requete(MODE_COURSE) & 0x00FF;
|
||
}
|
||
|
||
void maj_variables(void){
|
||
void strategie(void){
|
||
static int k = 0;
|
||
|
||
if (Bp_G == 1){LED_R = 1;} //si bouton poussoire gauche appuy? allumer led rouge
|
||
else{LED_R = 0;}
|
||
|
||
//Angle des roues necessaire pour toutes les pistes
|
||
distance_mur = distance_telemetre()*sin(3.1415*angle_tourelle/1800.0);
|
||
if(distance_mur > 1000 || distance_mur < 0) { //Trou dans le mur //**
|
||
ang_roue = 0;
|
||
}
|
||
else {
|
||
ang_roue = (K_roue*(distance_mur-500));//**
|
||
}
|
||
|
||
|
||
capteur = send_requete(INFO_CAPTEUR);//**
|
||
switch(num_piste){
|
||
case PISTE_VERTE :
|
||
... | ... | |
k = vit_roue*3;
|
||
}
|
||
if(k < (vit_max-3)*3){
|
||
vit_roue = k/3;//***
|
||
vit_roue = k/3;
|
||
k++;
|
||
}
|
||
break;
|
||
|
||
case 0x5604 :
|
||
if(k < (vit_max-3)*3){
|
||
vit_roue = k/3;//***
|
||
vit_roue = k/3;
|
||
k++;
|
||
}
|
||
break;
|
||
|
||
|
||
case 0x4304 : // Capteur avant fin
|
||
vit_roue = vit_max;
|
||
... | ... | |
break;
|
||
|
||
case PISTE_NOIRE :
|
||
switch(capteur){
|
||
case 0x6302 :
|
||
if(distance_mur > 1000 || distance_mur < 0) { //Trou dans le mur //**
|
||
ang_roue = 0;
|
||
}
|
||
else {
|
||
ang_roue = (K_roue*(distance_mur-700));//**
|
||
}
|
||
break;
|
||
|
||
|
||
}
|
||
break;
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
void maj_variables(void){
|
||
if (Bp_G == 1){LED_R = 1;} //si bouton poussoire gauche appuy? allumer led rouge
|
||
else{LED_R = 0;}
|
||
|
||
//Angle des roues necessaire pour toutes les pistes
|
||
distance_mur = distance_telemetre()*sin(3.1415*angle_tourelle/1800.0);
|
||
if(distance_mur > 1000 || distance_mur < 0) { //Trou dans le mur //**
|
||
ang_roue = 0;
|
||
}
|
||
else {
|
||
ang_roue = (K_roue*(distance_mur-500));//**
|
||
}
|
||
|
||
|
||
|
||
/*
|
||
//Detection de couleur
|
||
//8 bits de poids fort : couleur ('C','R','J','B' ou 'V')
|
||
if((capteur && 0x0100) == 0x0100){} //Capteur cyan ? //********
|
||
... | ... | |
if((capteur && 0x0300) == 0x0300){} //Capteur jaune ?
|
||
if((capteur && 0x0400) == 0x0400){} //Capteur bleu ?
|
||
if((capteur && 0x0500) == 0x0500){} //Capteur vert ?
|
||
*/
|
||
}
|
||
|
||
void asserv_roue(VP_INT stacd){
|
Formats disponibles : Unified diff
Séparation de la strategie de lasservissement des roues