Révision 295
Ajouté par maporte3 il y a plus de 6 ans
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
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