Projet

Général

Profil

« Précédent | Suivant » 

Révision 186

Ajouté par khmbaye il y a plus de 6 ans

fin de séance, encore sur la piste verte (pb d'asservissement)

Voir les différences:

branch/mbaye/Emb_App/programme_principal_etud.c
int vitesse;
int pos;
int dis;
//int a;
int a;
//int b;
UINT flag;
......
{
CanFrame m; CanFrame req;
m.data.id='T'; m.data.rtr=0; m.data.val=12;
m.data.id='T'; m.data.rtr=0; m.data.val=45;
pos_tourelle=m.data.val;
snd_dtq (CanTx,m.msg);
//pos_tourelle=m.data.val;
dly_tsk(100);
req.data.id='R';
req.data.rtr=1;
periph[ADDR('R')].ev=0x01;
snd_dtq(CanTx, req.msg);
wai_flg(ev_periph,0x01,TWF_ANDW,&flag);
pos=periph[ADDR('R')].val;
m.data.id='R'; m.data.rtr=1;
snd_dtq (CanTx,m.msg);
a= periph[ADDR('R')].val;
dly_tsk(100);
if(a>90)
{
m.data.id='T'; m.data.rtr=0;
pos_tourelle=0;
snd_dtq (CanTx,m.msg);
dly_tsk(100);
}
m.data.id='V'; m.data.rtr=0; m.data.val=10;
m.data.id='V'; m.data.rtr=0; m.data.val=35;
snd_dtq (CanTx,m.msg);
dly_tsk(100);
//rcv_dtq(CanRx, &m.msg);
switch(m.data.id)
{
case 'T':
// pos_tourelle=m.data.val;
req.data.id='R';
req.data.rtr=1;
periph[ADDR('R')].ev=0x01;
snd_dtq(CanTx, req.msg);
wai_flg(ev_periph,0x01,TWF_ANDW,&flag);
pos=periph[ADDR('R')].val;
//pos_tourelle=1.2*(45-pos); snd_dtq (CanTx,m.msg);
dly_tsk(100);
break;
pos_tourelle=1.2*(12-pos);
break;
case 'V':
vitesse=m.data.val;
req.data.id='U';
......
periph[ADDR('U')].ev=0x01;
snd_dtq(CanTx, req.msg);
wai_flg(ev_periph,0x01,TWF_ANDW,&flag);
dis=periph[ADDR('U')].val;
dis=periph[ADDR('U')].maj;
dly_tsk(150);
break;
}
if (dis>14)
{
m.data.id='D'; m.data.rtr=0; m.data.val=-4,5;
snd_dtq (CanTx,m.msg); dly_tsk(150);
}
}
}

Formats disponibles : Unified diff