Révision 370
Ajouté par jotoribio il y a plus de 6 ans
branch/toribio/Emb_App.tws | ||
---|---|---|
"E:\tp_info6_2018_toribio\tp_info6\Emb_App\Debug\mr308.inc"
|
||
"E:\tp_info6_2018_toribio\tp_info6\Emb_App\programme_principal_etud.c"
|
||
[WORKSPACE_FILE_STATES]
|
||
"E:\tp_info6_2018_toribio\tp_info6\Emb_App\Debug\mr308.inc" 50 50 1430 351 0 2
|
||
"E:\tp_info6_2018_toribio\tp_info6\Emb_App\conf_noyau.cfg" 75 75 1430 351 0 3
|
||
"E:\tp_info6_2018_toribio\tp_info6\Emb_App\crt0mr.a30" 25 25 1430 351 0 1
|
||
"E:\tp_info6_2018_toribio\tp_info6\Emb_App\Debug\mr308.inc" 50 50 1430 351 0 3
|
||
"E:\tp_info6_2018_toribio\tp_info6\Emb_App\conf_noyau.cfg" 75 75 1430 351 0 1
|
||
"E:\tp_info6_2018_toribio\tp_info6\Emb_App\crt0mr.a30" 25 25 1430 351 0 2
|
||
"E:\tp_info6_2018_toribio\tp_info6\Emb_App\programme_principal_etud.c" -8 -30 1596 539 1 0
|
||
"E:\tp_info6_2018_toribio\tp_info6\bsp\periph.c" 100 100 1430 351 0 4
|
||
"E:\tp_info6_2018_toribio\tp_info6\bsp\uart0.c" 125 125 1430 351 0 5
|
||
"E:\tp_info6_2018_toribio\tp_info6\bsp\periph.c" 100 100 1430 351 0 5
|
||
"E:\tp_info6_2018_toribio\tp_info6\bsp\uart0.c" 75 75 1430 351 0 4
|
||
[LOADED_PROJECTS]
|
||
"EmbM32C87App"
|
||
[END]
|
branch/toribio/Emb_App/programme_principal_etud.c | ||
---|---|---|
comm.data.rtr=0; //indique une ?criture
|
||
comm.data.val=k*(450/*ou ad00*/-alpha);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
dly_tsk(15);
|
||
}
|
||
|
||
}
|
||
... | ... | |
//Attente de la r?ponse
|
||
wai_flg (ev_periph, 0x02, TWF_ANDW, &flag);
|
||
distance=periph[ADDR('U')].val;
|
||
dly_tsk(5);
|
||
dly_tsk(15);
|
||
}
|
||
|
||
}
|
||
... | ... | |
//lecture de la position de la roue
|
||
CanFrame req,comm;
|
||
UINT flag;
|
||
if ((sauter==0) && (noir!=1)){
|
||
if ((sauter==0) && (noir==0)){
|
||
//Commande de l'angle de roue en zone normal
|
||
comm.data.id='D';
|
||
comm.data.rtr=0; //indique une ?criture
|
||
... | ... | |
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
if ((sauter==3) && (noir!=1)){
|
||
else if ((sauter==3)){
|
||
//Commande de l'angle de roue en zone normal
|
||
comm.data.id='D';
|
||
comm.data.rtr=0; //indique une ?criture
|
||
... | ... | |
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
else if ((sauter==1) || (noir==2)){
|
||
else if ((sauter==1)){
|
||
//Commande de l'angle de roue
|
||
comm.data.id='D';
|
||
comm.data.rtr=0; //indique une ?criture
|
||
... | ... | |
dly_tsk(5);
|
||
}
|
||
else if ((sauter==0) && (noir==1)){
|
||
//Commande de l'angle de roue
|
||
|
||
//Zone des tonneaux
|
||
comm.data.id='D';
|
||
comm.data.rtr=0; //indique une ?criture
|
||
if (distance<600) comm.data.val=0;
|
||
else if (distance>600) {
|
||
if (distance>2000);
|
||
else comm.data.val=k*(distance-900);
|
||
}
|
||
comm.data.val=0;
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
|
||
else if ((sauter==0) && (noir==2)){
|
||
comm.data.id='D';//zone de passage avant pont piste noire
|
||
comm.data.rtr=0;
|
||
k=1;
|
||
if (distance>2000);
|
||
else comm.data.val=k*(distance-300);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
else if ((sauter==0) && (noir==3)){
|
||
comm.data.id='D';//zone de passage avant pont piste noire
|
||
comm.data.rtr=0;
|
||
k=1;
|
||
if (distance>2000);
|
||
else comm.data.val=k*(distance-250);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
else if ((sauter==0) && (noir==4)){
|
||
comm.data.id='D';//zone de passage du pont piste noire
|
||
comm.data.rtr=0;
|
||
k=1;
|
||
if (distance>2000);
|
||
else comm.data.val=k*(distance-150);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
else if ((sauter==0) && (noir==5)){
|
||
comm.data.id='D';//zone apr?s passage du pont piste noire
|
||
comm.data.rtr=0;
|
||
k=2;
|
||
if (distance>2000);
|
||
else comm.data.val=k*(distance-700);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
else if ((sauter==0) && (noir==6)){
|
||
comm.data.id='D';//zone saut piste noire
|
||
comm.data.rtr=0;
|
||
comm.data.val=0;
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
else if ((sauter==0) && (noir==7)){
|
||
comm.data.id='D';//zone apr?s passage du pont piste noire
|
||
comm.data.rtr=0;
|
||
k=2;
|
||
if (distance>2000);
|
||
else comm.data.val=k*(distance-700);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
else if ((sauter==0) && (noir==8)){
|
||
comm.data.id='D';//zone en herbe du pont piste noire
|
||
comm.data.rtr=0;
|
||
k=2;
|
||
if (distance>2000);
|
||
else comm.data.val=k*(distance-700);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
else if ((sauter==0) && (noir==9)){
|
||
comm.data.id='D';//dernier virage piste noire
|
||
comm.data.rtr=0;
|
||
k=2;
|
||
if (distance>2000);
|
||
else comm.data.val=k*(distance-700);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
|
||
}
|
||
}
|
||
|
||
... | ... | |
while(1){
|
||
requete.data.id='V';
|
||
requete.data.rtr=0;
|
||
if (sauter==1){ //augmentation de la vitesse pour sauter
|
||
|
||
if (p0_4==0){ //appuie sur bouton
|
||
requete.data.val=0;
|
||
}
|
||
else if (sauter==1){ //augmentation de la vitesse pour sauter
|
||
requete.data.val=45;
|
||
}
|
||
else if ((sauter==0) && (noir==0)){
|
||
... | ... | |
else if ((sauter==3) && (noir==0)){
|
||
requete.data.val=20;} //virage
|
||
else if ((sauter==0) && (noir==1)){
|
||
requete.data.val=10;} //zone des tonneaux
|
||
requete.data.val=20; //zone des tonneaux
|
||
}
|
||
else if ((sauter==0) && (noir==2)){
|
||
requete.data.val=10;} //zone avant pont
|
||
else if ((sauter==0) && (noir==3)){
|
||
requete.data.val=10;} //zone avant pont
|
||
else if ((sauter==0) && (noir==4)){
|
||
requete.data.val=10;} //zone du pont
|
||
else if ((sauter==0) && (noir==5)){
|
||
requete.data.val=12;} //zone apr?s pont
|
||
else if ((sauter==0) && (noir==6)){
|
||
requete.data.val=43;} //zone saut noir
|
||
else if ((sauter==0) && (noir==7)){
|
||
requete.data.val=12;} //zone apres saut noir
|
||
else if ((sauter==0) && (noir==8)){
|
||
requete.data.val=12;} //zone en herbe
|
||
else if ((sauter==0) && (noir==9)){
|
||
requete.data.val=12;} //dernier virage piste noir
|
||
snd_dtq(CanTx, requete.msg);
|
||
dly_tsk(5);
|
||
}
|
||
... | ... | |
virage=periph[ADDR('C')].val;
|
||
numcapt=virage & 0x00ff;
|
||
virage=virage & 0xff00;
|
||
dly_tsk(5);
|
||
dly_tsk(10);
|
||
}
|
||
}
|
||
|
||
... | ... | |
while(1){
|
||
|
||
if ((numcapt==2) && (virage==22016)){
|
||
noir=2; //zone de passage
|
||
noir=4; //zone de passage du pont
|
||
}
|
||
else if (numcapt==1 && virage==22016){
|
||
else if ((numcapt==1) && (virage==18944)){
|
||
noir=3; //zone de virage passage du pont
|
||
//LED_R=1;
|
||
}
|
||
else if ((numcapt==4) && (virage==17152)){
|
||
noir=9; // dernier virage
|
||
dly_tsk(5);
|
||
}
|
||
else if ((numcapt==4) && (virage==22016)){
|
||
noir=8; // on a passe la zone en herbe
|
||
dly_tsk(5);
|
||
}
|
||
else if ((numcapt==3) && (virage==16896)){
|
||
noir=7; // on a passe le saut
|
||
dly_tsk(5);
|
||
}
|
||
else if ((numcapt==3) && (virage==22016)){
|
||
dly_tsk(5000);
|
||
noir=6; // on passe le saut
|
||
dly_tsk(2000);
|
||
noir=5;
|
||
dly_tsk(3000);
|
||
}
|
||
else if ((numcapt==2) && (virage==20992)){
|
||
noir=5; // on a pass? le pont
|
||
}
|
||
else if ((numcapt==1) && (virage==22016)){
|
||
noir=1; // on passe les toneaux
|
||
}
|
||
dly_tsk(3500);
|
||
noir=2; //on passe par la droite du dernier tonneau
|
||
dly_tsk(7500);
|
||
}
|
||
else if (numcapt!=2 && virage!=22016){
|
||
noir=0; // retour ? la regulation normal
|
||
}
|
||
}
|
||
dly_tsk(5);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|
||
... | ... | |
sta_tsk(ID_dist);
|
||
sta_tsk(ID_roue);
|
||
sta_tsk(ID_zone);
|
||
sta_tsk(ID_saut);
|
||
// sta_tsk(ID_saut);
|
||
sta_tsk(ID_pistenoire);
|
||
|
||
while(1)
|
||
while(1)
|
||
{
|
||
|
||
/* LED_J=1;
|
branch/toribio/Emb_App/conf_noyau.cfg | ||
---|---|---|
name = ID_pistenoire;
|
||
stack_size = 512;
|
||
stack_section = stack;
|
||
priority = 6;
|
||
priority = 5;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
|
Formats disponibles : Unified diff
J'arrive à passer la piste noire et à faire un arret d'urgence