Révision 219
Ajouté par nacao il y a plus de 6 ans
branch/nan_cao/Emb_App/programme_principal_etud.c | ||
---|---|---|
CanFrame reponse;
|
||
CanFrame comm;
|
||
float alpha;
|
||
float angle=45;
|
||
float angle=450;
|
||
// float erreur;
|
||
int g=5;
|
||
while(1){
|
||
... | ... | |
demande.data.id='R';
|
||
demande.data.rtr=1;
|
||
snd_dtq (CanTx,demande.msg);
|
||
rcv_dtq (CanRx,&reponse.msg);
|
||
alpha=reponse.data.val;
|
||
alpha=periph[ADDR('R')].val;
|
||
|
||
|
||
alpha=alpha/10;
|
||
// alpha=alpha/10;
|
||
// erreur = angle-alpha;
|
||
|
||
comm.data.id='T';
|
||
comm.data.rtr=0;
|
||
if (alpha!=angle)comm.data.val=(alpha-angle)*g;
|
||
snd_dtq(CanTx, comm.msg);
|
||
|
||
if (alpha!=angle) comm.data.val=(angle-alpha)*g;
|
||
snd_dtq(CanTx, comm.msg);
|
||
}
|
||
|
||
}
|
||
... | ... | |
dly_tsk(10);
|
||
demande.data.id='U';
|
||
demande.data.rtr=1;
|
||
distance=reponse.data.val;
|
||
periph[ADDR('U')].ev=0x02;
|
||
distance=periph[ADDR('U')].val;
|
||
snd_dtq (CanTx,demande.msg);
|
||
}
|
||
}
|
||
... | ... | |
void commandeD(){
|
||
CanFrame demande;
|
||
CanFrame reponse;
|
||
|
||
UINT flag;
|
||
while(1){
|
||
|
||
demande.data.id='D';
|
||
demande.data.rtr=0;
|
||
demande.data.val=1*(distance-50);
|
||
snd_dtq(CanTx,demande.msg);
|
||
periph[ADDR('D')].ev=0x01;
|
||
|
||
wai_flg (ev_periph, 0x01, TWF_ANDW, &flag);
|
||
ang_roue=periph[ADDR('D')].val;
|
||
|
||
|
||
demande.data.id='D';
|
||
demande.data.rtr=0;
|
||
demande.data.val=1*(distance-500);
|
||
|
||
snd_dtq (CanTx,demande.msg);
|
||
snd_dtq(CanTx,demande.msg);
|
||
dly_tsk(10);
|
||
// demande.data.val=1*(distance-50);
|
||
// snd_dtq(CanTx,demande.msg);
|
||
// dly_tsk(10);
|
||
}
|
||
}
|
||
|
Formats disponibles : Unified diff