Révision 461
Ajouté par audercoux il y a plus de 6 ans
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
problème sur la piste rouge