Projet

Général

Profil

« Précédent | Suivant » 

Révision 429

Ajouté par maporte3 il y a plus de 6 ans

Ajout de la Led Jaune en cas de valeur abérente du telemetre

Voir les différences:

branch/porte/Emb_App/programme_principal_etud.c
unsigned int ErreurRoues=0,Somme_ErreurRoues=0;
int vit=0, i=1, Distance;
int Angle_R=0; //Angle des roues
unsigned short Vitesse_vert=50,Vitesse_bleu=35,Vitesse_rouge=30, Vitesse_noir=12;
unsigned short Vitesse_vert_virage=33, Vitesse_bleu_virage=26, Vitesse_rouge_virage=20, Vitesse_rouge_saut=45;
unsigned short Vitesse_vert=50,Vitesse_bleu=37,Vitesse_rouge=30, Vitesse_noir=12;
unsigned short Vitesse_vert_virage=33, Vitesse_bleu_virage=28, Vitesse_rouge_virage=20, Vitesse_rouge_saut=45;
//Variable de la fonction Capteur
unsigned int Info_capteur, couleur_capteur, num_capteur;
//Variable de la fonction Distance_bord
......
break;
case 2:
if(Distance != distance_bord && Bord_defaut == 0){
Angle_R=-1*(Kpr*ErreurRoues+Kdr*Somme_ErreurRoues);} //correction de l'angle par handler cyclique des roues
Angle_R=-1*(Kpr*ErreurRoues/*+Kdr*Somme_ErreurRoues*/);} //correction de l'angle par handler cyclique des roues
break;
case 3:
if(Distance != distance_bord && Bord_defaut == 0 && num_capteur != 0x66F0){
Angle_R=-1*(Kpr*ErreurRoues+Kdr*Somme_ErreurRoues);} //correction de l'angle par handler cyclique des roues
Angle_R=-1*(Kpr*ErreurRoues/*+Kdr*Somme_ErreurRoues*/);} //correction de l'angle par handler cyclique des roues
break;
case 4:
if(Distance != distance_bord_noir && Bord_defaut == 0){
Angle_R=-1*(Kpr*ErreurRoues+Kdr*Somme_ErreurRoues);} //correction de l'angle par handler cyclique des roues
Angle_R=-1*(Kpr*ErreurRoues/*+Kdr*Somme_ErreurRoues*/);} //correction de l'angle par handler cyclique des roues
break;
default :
if(Distance != distance_bord && Bord_defaut == 0){
Angle_R=-1*(Kpr*ErreurRoues+Kdr*Somme_ErreurRoues);}
Angle_R=-1*(Kpr*ErreurRoues/*+Kdr*Somme_ErreurRoues*/);}
}
}
......
comm.data.val=Vitesse_rouge_virage;
snd_dtq (CanTx,comm.msg);
}
}
/* if(couleur==0x1c80 || couleur==0x18c8 ) ; // avant saut: bloc rouge grand valeur 2 et pr?-barille: petit bloc cyan 32 , bloc les roues
else if(couleur==0x18d0 || couleur==0x18c1){ // barille: petit bloc cyan 64 et piste caillou: petit bloc cyan 6
distance_ref=350;
if(distance!=distance_ref){
valeur_r=-k2*(distance_ref-distance);}
}
else if(couleur==0x18e0){
distance_ref=570;
if(distance!=distance_ref){
valeur_r=-k2*(distance_ref-distance);}
}
else {
distance_ref=distance_ref_init;
if(distance!=distance_ref){
valeur_r=-k2*(distance_ref-distance);}
}
}*/
}
break;
case 4 :
if(Depart_ok == 1 && Arret_urgence == 0){
......
else{
Bord_defaut=0;
}
}
if(Bord_defaut == 1){
LED_J=1;
dly_tsk(1000);
LED_J=0;
}
}
dly_tsk(10);
}
}
......
}
}
//Arret d'urgence si appuie sur la bouton gauche, ce qui allume la led Rouge.
void Bp_hc(){
if(Bp_G == 1){ Arret_urgence = 1; LED_R = 1;}
......
}
void Led_Jaune(){
if(Bord_defaut == 1){
LED_J=1;
dly_tsk(1000);
LED_J=0;
}
}
// +-----------------------------------------------------+
// | Gestion des informations de la piste |
// +-----------------------------------------------------+
......
sta_tsk(ID_Commande_clavier);
sta_cyc(ID_Bp_hc);
sta_tsk(ID_Led_Jaune);
sta_tsk(ID_Commande_LCD);
sta_tsk(ID_Circuit);
sta_tsk(ID_Evenement);
branch/porte/Emb_App/conf_noyau.cfg
name = ID_periph_tx;
stack_size = 256;
stack_section = stack;
priority = 3;
priority = 2;
initial_start = ON;
exinf = 0x0;
};
......
name = ID_periph_rx;
stack_size = 256;
stack_section = stack;
priority = 2;
priority = 1;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_Asserv_T;
stack_size = 256;
stack_section = stack;
priority = 5;
priority = 4;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_Asserv_R;
stack_size = 256;
stack_section = stack;
priority = 4;
priority = 3;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_Asserv_V;
stack_size = 256;
stack_section = stack;
priority = 6;
priority = 5;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_Commande_clavier;
stack_size = 256;
stack_section = stack;
priority = 6;
priority = 7;
initial_start = OFF;
exinf = 0x0;
};
......
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = Led_Jaune();
name = ID_Led_Jaune;
stack_size = 256;
stack_section = stack;
priority = 6;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;

Formats disponibles : Unified diff