Projet

Général

Profil

« Précédent | Suivant » 

Révision 377

Ajouté par nodaoud il y a plus de 6 ans

passage a la piste noire

Voir les différences:

branch/daoud/Emb_App/programme_principal_etud.c
short k=1;
CanFrame req,comm;
UINT flag;
while(1){
req.data.id='R';
req.data.rtr=1;
periph[ADDR('R')].ev=0x01;
......
//Attente de la r?ponse
wai_flg (ev_periph, 0x01, TWF_ANDW, &flag);
alpha=periph[ADDR('R')].val;
if(capteur==0x5603){
dly_tsk(50);}
else{
//Commande vitesse de la tourelle
comm.data.id='T';
comm.data.rtr=0; //indique une ?criture
comm.data.val=k*(450-alpha);
snd_dtq(CanTx, comm.msg);}
dly_tsk(10);
}
snd_dtq(CanTx, comm.msg);
dly_tsk(10);
}
}
void dist(){
//lecture de la distance du mur
......
periph[ADDR('U')].ev=0x01;
snd_dtq(CanTx, req.msg);
//Attente de la r?ponse
wai_flg (ev_periph, 0x01, TWF_ANDW, &flag);
distance=periph[ADDR('U')].val;
dly_tsk(20);
......
snd_dtq(CanTx, req.msg);
//Attente de la r?ponse
wai_flg (ev_periph, 0x03, TWF_ANDW, &flag);
capteur=periph[ADDR('C')].val;
capteur=periph[ADDR('C')].val;
dly_tsk(20);
}
......
void det_saut(){
while(1){
if(capteur==0x5603){
if(capteur==0x7688){
distance=700;
alpha=450;
/* vite.data.val=36;
snd_dtq(CanTx, vite.msg);*/
......
req.data.id='D';
req.data.rtr=0;
if(capteur==0x5603){
if(capteur==0x7688){
req.data.val=0;
snd_dtq(CanTx, req.msg);}
else{
if(distance>1000)distance=701;
else{
......
}
}
dly_tsk(20);
dly_tsk(10);
}
}
void demarrage(){
......
while(1){
vite.data.id='V';
vite.data.rtr=0;
if(capteur==0x5603){// debut de saut
//dly_tsk(10);
vite.data.val=50;
if(capteur==0x7688){// debut de saut
vite.data.val=45;
snd_dtq(CanTx, vite.msg);}
else{
if(capteur==0x4203){
vite.data.val=10;
vite.data.val=7;
snd_dtq(CanTx, vite.msg);}
if(capteur==0x7601){
vite.data.val=3;
snd_dtq(CanTx, vite.msg);}
else{
vite.data.val=36;
snd_dtq(CanTx, vite.msg);

Formats disponibles : Unified diff