Projet

Général

Profil

« Précédent | Suivant » 

Révision 219

Ajouté par nacao il y a plus de 6 ans

Voir les différences:

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