Projet

Général

Profil

« Précédent | Suivant » 

Révision 295

Ajouté par maporte3 il y a plus de 6 ans

Ajout de la fonction circuit() qui récupère les information sur l'état du feu et le numéro du circuit en cours d'exécution

Voir les différences:

branch/porte/Emb_App/programme_principal_etud.c
int Kpt=1, Kpr=2; //Param?tre des PID tourelle et roues
int Kit=4, Kir=40;
int Kdt=1.5, Kdr=1;
unsigned int Vitesse=0, vit=0, i=1, Distance;
unsigned int Angle_R=0, distance_bord=660; //Angle des roues
unsigned int Vitesse=35, vit=0, i=1, Distance;
unsigned int Angle_R=0, distance_bord=660; //Angle des roues
//Variable de la fonction Capteur
unsigned int Info_capteur;
//Variable de la fonction Distance_bord
unsigned int Bord_defaut=0, ecart=400;
//Variable de la fonction IHM
short Touche_clavier;
//Variable de la fonction Circuit
unsigned int Info_circuit, Etat_feu, Num_circuit;
void Asserv_T(){
......
}
void Commande(){
CanFrame comm;
CanFrame demande;
CanFrame reponse;
void Commande_IHM(){
while(1){
......
}
vit = 0;
i = 1;
}
}
Touche_clavier=0;
dly_tsk(100);
}
dly_tsk(100);
}
}
void Circuit(){
//'M'/77/0x7D?: Mode de course :
// Bit 15?: Etat feu tricolore ( 1 -> Vert, 0 -> Orange ou Rouge),
// Bits 14-8?: 1 Attente, 2 course, 3 essais libres)
// Bits 7-0?: numero de la piste
CanFrame comm;
CanFrame demande;
CanFrame reponse;
while(1){
demande.data.id='M';
demande.data.rtr=1;
snd_dtq (CanTx,demande.msg); // Interrogation du peripherique sur les information du circuit.
Info_circuit=periph[ADDR('M')].val;
Num_circuit=Info_circuit & 0x000F;
Etat_feu=Info_circuit >> 15; // contient la valeur de retour du simulateur sur le l'?tat du feu.
dly_tsk(200);
}
}
void main()
......
sta_tsk(ID_Distance_bord);
sta_tsk(ID_Commande);
sta_tsk(ID_Commande_IHM);
sta_tsk(ID_Circuit);
while(1)
{
branch/porte/Emb_App/conf_noyau.cfg
};
task[]{
entry_address = Commande();
name = ID_Commande;
entry_address = Commande_IHM();
name = ID_Commande_IHM;
stack_size = 256;
stack_section = stack;
priority = 6;
......
exinf = 0x0;
};
task[]{
entry_address = Circuit();
name = ID_Circuit;
stack_size = 256;
stack_section = stack;
priority = 6;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;
initial_pattern = 0x0000;

Formats disponibles : Unified diff