Projet

Général

Profil

« Précédent | Suivant » 

Révision 503

Ajouté par crzemeta il y a plus de 6 ans

Sépararation de la tache d'envoi de commande et de celle de l'arrêt d'urgence : OK

Voir les différences:

branch/zemeta/Emb_App/programme_principal_etud.c
sta_tsk(id_mode);
sta_tsk(id_piste);
sta_tsk(id_piste_verte_bleue); // ? activer pour piste verte et bleue
sta_tsk(id_comm_v);
sta_tsk(id_arret);
comRoue=-k2*error2 ;
sta_tsk(id_roue);
sta_tsk(id_detec); // ? activer pour piste rouge
......
}
//Envoie commande vitesse voiture
//Envoie commande vitesse voiture en fonction de du feu
void avance_voiture()
{
......
{
while (1)
{
if (num_piste==768)
if (num_piste==768 || num_piste==1024)
{
LED_R=0;
if(capt_detecte!=22019) // course normale
{
D=705;
consigne_tour=450;
if(appui_Bp!=1)
{
vitesse_roue = 20;
comRoue = -k2*error2 ;
}
else if (appui_Bp)
{
vitesse_roue = 0;
comRoue = 0;
}
}
else if (capt_detecte==22019) // detection de ligne droite de saut
......
LED_R=1;
D=500;
consigne_tour=900;
if(appui_Bp!=1)
{
vitesse_roue = 45; //vitesse_roue = 45; // valeur pour un saut parfait dr la piste rouge
comRoue = 1 ;
}
else if (appui_Bp)
{
vitesse_roue = 0;
comRoue = 0 ;
}
//comRoue = 1 ; // pour eviter les collisions avec le mur ? l'atterissage
}
}
dly_tsk(10);
......
{
D=705;
consigne_tour=450;
if(appui_Bp!=1)
}
dly_tsk(10);
}
}
void envoie_comm_v()
{
while(1)
{
if(appui_Bp!=1)
{
vitesse_roue = 35;
comRoue = -k2*error2 ;
if(num_piste==256 || num_piste==512)
{
comRoue = -k2*error2 ;
vitesse_roue = 35;
}
if (num_piste==768 || num_piste==1024)
{
if(capt_detecte!=22019)
{
vitesse_roue = 20;
comRoue = -k2*error2 ;
}
else if (capt_detecte==22019)
{
vitesse_roue = 45;
comRoue = 1 ;
}
}
}
else if (appui_Bp)
/*else if (appui_Bp)
{
vitesse_roue = 0;
comRoue = 0 ;
if(num_piste==256 || num_piste==512)
{
vitesse_roue = 0;
comRoue = 0 ;
}
if (num_piste==768 || num_piste==1024)
{
if(capt_detecte!=22019)
{
vitesse_roue = 0;
comRoue = 0 ;
}
else if (capt_detecte==22019)
{
vitesse_roue = 0;
comRoue = 0;
}
}
}*/
dly_tsk(5);
}
}
void arret_urgence()
{
while(1)
{
if (appui_Bp)
{
if(num_piste==256 || num_piste==512)
{
vitesse_roue = 0;
comRoue = 0 ;
}
if (num_piste==768 || num_piste==1024)
{
if(capt_detecte!=22019)
{
vitesse_roue = 0;
comRoue = 0 ;
}
else if (capt_detecte==22019)
{
vitesse_roue = 0;
comRoue = 0;
}
}
}
}
dly_tsk(10);
dly_tsk(5);
}
}
void appui() // Detection de bouton poussoir droit
{
while(1)
branch/zemeta/Emb_App/conf_noyau.cfg
};
task[]{
entry_address = envoie_comm_v();
name = id_comm_v;
stack_size = 256;
stack_section = stack;
priority = 2;
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = arret_urgence();
name = id_arret;
stack_size = 256;
stack_section = stack;
priority = 2;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;
initial_pattern = 0x0000;

Formats disponibles : Unified diff