Projet

Général

Profil

« Précédent | Suivant » 

Révision 461

Ajouté par audercoux il y a plus de 6 ans

problème sur la piste rouge

Voir les différences:

branch/decroux/Emb_App.tws
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\programme_principal_etud.c"
[WORKSPACE_FILE_STATES]
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\conf_noyau.cfg" 75 75 1430 351 0 2
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\crt0mr.a30" -8 -30 1596 539 1 1
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\programme_principal_etud.c" 0 0 1596 539 0 0
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\crt0mr.a30" 0 0 1596 539 0 1
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\programme_principal_etud.c" -8 -30 1596 539 1 0
"E:\tp_info6_2018_decroux\tp_info6\bsp\periph.c" 75 75 1430 351 0 3
"E:\tp_info6_2018_decroux\tp_info6\bsp\uart0.c" 100 100 1430 351 0 4
[LOADED_PROJECTS]
branch/decroux/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff001a
RESET=ff001c
branch/decroux/Emb_App/programme_principal_etud.c
unsigned int dis;
unsigned int capt=0x0000;
unsigned int Mode;
int cpt=0;
......
}
else if(dis>5000 || dis<400 || capt==0x7210) //Pour passer les trous et les tonneau
{
LED_J=1;
dly_tsk(100);
commRoues.data.id='D'; // Commande de l'angle des roues
commRoues.data.rtr=0; //Indique une requete d'?criture
commRoues.data.val= 0; // Correction de la disance
......
{
if(dis>1000 ) //Pour passer les trous
{
LED_J=1;
dly_tsk(100);
commRoues.data.id='D'; // Commande de l'angle des roues
commRoues.data.rtr=0; //Indique une requete d'?criture
commRoues.data.val= 0; // Correction de la disance
......
//Fonction vitesse rouge
void vitesse3(unsigned int valcapt)
{
CanFrame commVit;
//vitesse pour passer le tramplin piste rouge
if(valcapt== 0x6a08)
CanFrame commVit;
//vitesse pour passer le tramplin piste rouge
if(valcapt== 0x6a08)
{
commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=45;
snd_dtq (CanTx,commVit.msg);
}
//Ralentissemet apr?s tramplin piste rouge
else if(valcapt==0x7608||valcapt==0x4203)
{
commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=15;
snd_dtq (CanTx,commVit.msg);
}
else
{
commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=30; //Reprise de vitesse une fois la voiture stabilis? piste rouge
snd_dtq (CanTx,commVit.msg);
}
}
int vitesse2(int capt)
{
CanFrame commVit;
if(capt==0x5605)
{
cpt=cpt+1;
if(cpt==24)
{
commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=45;
commVit .data.rtr=0;
commVit.data.val=0;
snd_dtq (CanTx,commVit.msg);
}
//Ralentissemet apr?s tramplin piste rouge
else if(valcapt==0x7608||valcapt==0x4203)
return cpt;
}
else
{
commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=15;
commVit .data.rtr=0;
commVit.data.val=30;
snd_dtq (CanTx,commVit.msg);
}
else
{ commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=25; //Reprise de vitesse une fois la voiture stabilis? piste rouge
snd_dtq (CanTx,commVit.msg);
}
}
}
else
{
commVit.data.id='V';
commVit .data.rtr=0;
commVit.data.val=30;
snd_dtq (CanTx,commVit.msg);
}
return cpt;
}
//Fonctin vitesse verte et bleu
void vitesse1()
//Fonctin vitesse verte
int vitesse1(int capt)
{
CanFrame commVit;
commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=30;
snd_dtq (CanTx,commVit.msg);
if(capt==0x5605)
{
cpt=cpt+1;
if(cpt==9)
{
commVit.data.id='V';
commVit .data.rtr=0;
commVit.data.val=0;
snd_dtq (CanTx,commVit.msg);
return cpt;
}
else
{
commVit.data.id='V';
commVit .data.rtr=0;
commVit.data.val=42;
snd_dtq (CanTx,commVit.msg);
}
}
else
{
commVit.data.id='V';
commVit .data.rtr=0;
commVit.data.val=42;
snd_dtq (CanTx,commVit.msg);
}
return cpt;
}
//Lecture couleur de la piste et feu
//Lecture couleur de la piste et du feu
unsigned int lecture_piste()
{
CanFrame Mcourse;
Mcourse.data.id='M';
Mcourse.data.rtr=1; // Indiquation d'une requiete de lecture
snd_dtq (CanTx,Mcourse.msg); // Interrogation du peripherique
Mode=periph[ADDR('M')].val; // Contient la derniere valeur renvoyee par le simulateur
periph[ADDR('M')].maj;
dly_tsk(10);
CanFrame Mcourse;
Mcourse.data.id='M';
Mcourse.data.rtr=1; // Indiquation d'une requiete de lecture
snd_dtq (CanTx,Mcourse.msg); // Interrogation du peripherique
Mode=periph[ADDR('M')].val; // Contient la derniere valeur renvoyee par le simulateur
periph[ADDR('M')].maj;
return Mode;
}
// Fonction lecture capteur
unsigned int lecture_Capteur()
{
CanFrame capteur;
capteur.data.id='C'; //Information sur le dernier capteur
capteur.data.rtr=1; // Indiquation d'une requiete de lecture
snd_dtq (CanTx,capteur.msg); // Interrogation du peripherique
capt=periph[ADDR('C')].val; // Contient la derniere valeur renvoyee par le simulateur
periph[ADDR('C')].maj;// Incremente a chaque reception
return capt;
}
// Focntion delay
void Pause(void)
{
......
void main()
{
CanFrame capteur;
ports_mcu();
lcd_init();
......
Mode= lecture_piste();
if(Mode==0x8304 || Mode==0x0304)//On est sur la piste noir
{
//Lecture de la valeur du capteur
capteur.data.id='C'; //Information sur le dernier capteur
capteur.data.rtr=1; // Indiquation d'une requiete de lecture
snd_dtq (CanTx,capteur.msg); // Interrogation du peripherique
capt=periph[ADDR('C')].val; // Contient la derniere valeur renvoyee par le simulateur
periph[ADDR('C')].maj;// Incremente a chaque reception
capt=lecture_Capteur();
vitesse4(capt);
}
else if(Mode==0x8303 || Mode==0303) //O est sur la piste rouge
else if(Mode==0x8303 || Mode==0x0303) //O est sur la piste rouge
{
//Lecture de la valeur du capteur
capteur.data.id='C'; //Information sur le dernier capteur
capteur.data.rtr=1; // Indiquation d'une requiete de lecture
snd_dtq (CanTx,capteur.msg); // Interrogation du peripherique
capt=periph[ADDR('C')].val; // Contient la derniere valeur renvoyee par le simulateur
periph[ADDR('C')].maj;// Incremente a chaque reception
capt=lecture_Capteur();
vitesse3(capt);
}
else if(Mode==0x8302 || Mode==0x0302) //On est dur la piste bleu
{
vitesse1();
capt=lecture_Capteur();
cpt=vitesse2(capt);
if (cpt==24)//Compteur pour arreter la voiture a 3 eme tour
{
return ;
}
}
else if(Mode==0x8301 || Mode==0x0301)//On est sur la piste verte
{
vitesse1();
capt=lecture_Capteur();
cpt=vitesse1(capt);
if (cpt==9)//Compteur pour arreter la voiture a 3 eme tour
{
return ;
}
}
LED_J=1;
dly_tsk(100);
LED_J=0;
dly_tsk(100);

Formats disponibles : Unified diff