Révision 429
Ajouté par maporte3 il y a plus de 6 ans
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
Ajout de la Led Jaune en cas de valeur abérente du telemetre