Projet

Général

Profil

« Précédent | Suivant » 

Révision 61

Ajouté par maporte3 il y a plus de 6 ans

Ajout de la tache vitesse qui se déclenche quelque seconde après le démarrage
(essaie pour vitesse nulle)

Voir les différences:

branch/porte/Emb_App/programme_principal_etud.c
// correspondant au nom du v?hicule si le nom se termine par '*'
unsigned int alpha=0;//prend la valeur de l'angle au temps t-1
unsigned int Consigne_T=450; //Consigne de l'angle de la tourelle
unsigned int Consigne_T=500; //Consigne de l'angle de la tourelle
unsigned int valeur=0; //valeur transmise corrig?
unsigned int Somme_Erreur=0, Erreur=0, Delta_Erreur=0, Erreur_pre=0;
int Kp=3, Kpr=1;
int Ki=9;
int Kd=1, Kdr=1;
int Kp=2, Kpr=1;
int Ki=5;
int Kd=2, Kdr=1;
unsigned int Vitesse=0,Distance;
unsigned int Angle_R=0;
unsigned int ErreurRoues=0, ErreurRouesPre=0, Delta_ErreurRoues=0;
......
}
}
/*void Asserv_V(){
void Asserv_V(){
//'V'/86/0x56?: Commande en vitesse des roues motrices du vehicule (en radian /secondes).
CanFrame comm;
......
dly_tsk(500);
}
}*/
}
void Asserv_T_hc(){
Erreur_pre=Erreur;
......
void Asserv_R_hc(){
ErreurRouesPre=ErreurRoues;
ErreurRoues=Distance-710;
ErreurRoues=Distance-500;
Delta_ErreurRoues=ErreurRoues-ErreurRouesPre;
if(Distance<=690)
if(Distance<=470)
Angle_R=Kpr*ErreurRoues+Kdr*Delta_ErreurRoues;
if(Distance>=730)
if(Distance>=530)
Angle_R=Kpr*ErreurRoues+Kdr*Delta_ErreurRoues;
}
......
sta_tsk(ID_Asserv_R);
sta_cyc(ID_Asserv_R_hc);
/*delay(1000);
sta_tsk(ID_Asserv_V);*/
delay(5000);
sta_tsk(ID_Asserv_V);
while(1)
{
branch/porte/Emb_App/conf_noyau.cfg
exinf = 0x0;
};
task[]{
entry_address = Asserv_V();
name = ID_Asserv_V;
stack_size = 256;
stack_section = stack;
priority = 4;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;
initial_pattern = 0x0000;

Formats disponibles : Unified diff