Révision 366
Ajouté par maporte3 il y a plus de 6 ans
branch/porte/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff003e
|
||
RESET=ff0042
|
branch/porte/Emb_App/programme_principal_etud.c | ||
---|---|---|
//Variable de la fonction IHM
|
||
short Touche_clavier;
|
||
//Variable de la fonction Circuit
|
||
unsigned int Info_circuit, Etat_feu, Num_circuit;
|
||
unsigned int Info_circuit, Etat_feu, Num_circuit, Depart_ok=0, Arret_urgence=0;
|
||
//Variable de la fonction Evenement
|
||
unsigned int Lecture_eve;
|
||
FLGPTN test;
|
||
... | ... | |
|
||
comm.data.id='V'; //Commande de la vitesse des roues motrices
|
||
comm.data.rtr=0;
|
||
|
||
|
||
if(Info_capteur == 0x560){ // Commande de vitesse pour les lignes droites (dernier capteur detecte = vert).
|
||
comm.data.val=Vitesse;
|
||
snd_dtq (CanTx,comm.msg); // Envoi de la commande de vitesse
|
||
|
||
if(Depart_ok == 1 && Arret_urgence == 0){
|
||
if(Info_capteur == 0x560){ // Commande de vitesse pour les lignes droites (dernier capteur detecte = vert).
|
||
comm.data.val=Vitesse;
|
||
snd_dtq (CanTx,comm.msg); // Envoi de la commande de vitesse
|
||
}
|
||
else if(Info_capteur == 0x630 && Saut == 0){ //Accel?ration pour passer le saut
|
||
comm.data.val=Vitesse*1.66;
|
||
snd_dtq (CanTx,comm.msg);
|
||
Saut=1;
|
||
}
|
||
else if(Info_capteur == 0x630 && Saut == 1){ //Ralentissement pour la reception du saut
|
||
comm.data.val=Vitesse/2.3;
|
||
snd_dtq (CanTx,comm.msg);
|
||
// Saut=0;
|
||
}
|
||
else{ // Ralentissement en cas de virage et de d?tection de trou ou d'obstacle.
|
||
comm.data.val=Vitesse/1.55;
|
||
snd_dtq (CanTx,comm.msg);
|
||
}
|
||
}
|
||
else if(Info_capteur == 0x630 ){ //Accel?ration pour passer le saut
|
||
comm.data.val=Vitesse*1.66;
|
||
else{
|
||
comm.data.val=0;
|
||
snd_dtq (CanTx,comm.msg);
|
||
Saut=1;
|
||
}
|
||
else if(Info_capteur == 0x630 && Saut == 1){ //Ralentissement pour la reception du saut
|
||
comm.data.val=Vitesse/2.3;
|
||
snd_dtq (CanTx,comm.msg);
|
||
Saut=0;
|
||
}
|
||
else{ // Ralentissement en cas de virage et de d?tection de trou ou d'obstacle.
|
||
comm.data.val=Vitesse/1.55;
|
||
snd_dtq (CanTx,comm.msg);
|
||
}
|
||
|
||
//lcd_str(char &Vitesse)
|
||
|
||
dly_tsk(10);
|
||
}
|
||
dly_tsk(10);
|
||
}
|
||
}
|
||
|
||
void Capteur(){
|
||
|
||
... | ... | |
|
||
void Commande_IHM(){
|
||
|
||
// Interface Homme Machine muni du clavier matricielle, de l'?cran LCD,
|
||
// des LEDs, des potentiometre et des interrupteurs.
|
||
|
||
while(1){
|
||
|
||
|
||
vrcv_dtq(QdmTouche, &Touche_clavier);
|
||
|
||
if(Touche_clavier != 0){
|
||
... | ... | |
Touche_clavier=0;
|
||
dly_tsk(100);
|
||
}
|
||
dly_tsk(100);
|
||
}
|
||
|
||
dly_tsk(100);
|
||
}
|
||
|
||
}
|
||
|
||
void Bp_hc(){
|
||
|
||
if(Bp_G == 1){ Arret_urgence = 1;}
|
||
if(Bp_G == 0){ Arret_urgence = 0;}
|
||
|
||
|
||
}
|
||
|
||
void Circuit(){
|
||
|
||
//'M'/77/0x7D?: Mode de course :
|
||
... | ... | |
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 l'?tat du feu.
|
||
Etat_feu=Info_circuit >> 15; // contient la valeur de retour du simulateur sur l'?tat du feu tricolore.
|
||
|
||
if( Etat_feu == 1){ Depart_ok = 1;} // Passe la variable permettant le d?part ? 1.
|
||
dly_tsk(200);
|
||
}
|
||
|
||
... | ... | |
|
||
wai_flg(event,(FLGPTN) 0x0800, TWF_ANDW,&test);
|
||
|
||
dly_tsk(200);
|
||
dly_tsk(800);
|
||
}
|
||
|
||
}
|
||
... | ... | |
sta_tsk(ID_Distance_bord);
|
||
|
||
sta_tsk(ID_Commande_IHM);
|
||
sta_cyc(ID_Bp_hc);
|
||
|
||
sta_tsk(ID_Circuit);
|
||
|
branch/porte/Emb_App/conf_noyau.cfg | ||
---|---|---|
phs_counter = 0x0;
|
||
};
|
||
|
||
cyclic_hand[]{
|
||
entry_address = Bp_hc();
|
||
name = ID_Bp_hc;
|
||
exinf = 0x0;
|
||
start = OFF;
|
||
phsatr = OFF;
|
||
interval_counter = 0x64;
|
||
phs_counter = 0x0;
|
||
};
|
||
|
||
vdataqueue[]{
|
||
name = QdmTouche;
|
||
wait_queue = TA_TFIFO;
|
Formats disponibles : Unified diff
Ajout d'un handler cyclic qui permet l'arrêt d'urgence du véhicule lorsque la touche gauche est appuyé