Révision 251
Ajouté par anfichot1 il y a plus de 6 ans
branch/fichot/Emb_App/programme_principal_etud.c | ||
---|---|---|
// correspondant au nom du v?hicule si le nom se termine par '*'
|
||
|
||
|
||
int k=2;
|
||
int k=4;
|
||
int k2=1;
|
||
int vitesse = 10;
|
||
int vitesse = 30;
|
||
|
||
|
||
|
||
... | ... | |
vit_roue.data.rtr=0;
|
||
vit_roue.data.val=vitesse;
|
||
snd_dtq (CanTx,vit_roue.msg);
|
||
dly_tsk(100);
|
||
}
|
||
|
||
void asserv_tourelle()
|
||
... | ... | |
{
|
||
CanFrame comm;
|
||
CanFrame req, reponse;
|
||
unsigned short consigne = 770;
|
||
unsigned short consigne = 715;
|
||
unsigned short distance;
|
||
short rot;
|
||
|
||
|
||
while(1){
|
||
req.data.id = 'U';
|
||
req.data.rtr = 1;
|
||
|
||
req.data.id = 'U';
|
||
req.data.rtr = 1;
|
||
|
||
snd_dtq(CanTx, req.msg);
|
||
periph[ADDR('U')].val;
|
||
|
||
distance = periph[ADDR('U')].val; //r?ponse de distance
|
||
|
||
comm.data.id = 'D';
|
||
comm.data.rtr = 0;
|
||
comm.data.val = k2*(distance-consigne);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(100);
|
||
snd_dtq(CanTx, req.msg);
|
||
periph[ADDR('U')].val;
|
||
|
||
distance = periph[ADDR('U')].val;
|
||
rot = k2*(distance-consigne);
|
||
if (distance <= 1000 && distance >= 400 )
|
||
{
|
||
comm.data.id='D'; comm.data.rtr=0; comm.data.val=rot;
|
||
snd_dtq (CanTx,comm.msg);
|
||
}
|
||
else
|
||
{
|
||
comm.data.id='D'; comm.data.rtr=0; comm.data.val=0;
|
||
snd_dtq (CanTx,comm.msg);
|
||
}
|
||
dly_tsk(20);
|
||
|
||
|
||
}
|
||
}
|
||
|
||
... | ... | |
sta_cyc(ID_acqui);
|
||
sta_tsk(ID_periph_rx);
|
||
sta_tsk(ID_asserv_tourelle);
|
||
dly_tsk(1000);
|
||
sta_tsk(ID_asserv2);
|
||
dly_tsk(2000);
|
||
while(1){
|
Formats disponibles : Unified diff
piste bleue et verte réussie (mais pas optimiser au meilleur)