Projet

Général

Profil

« Précédent | Suivant » 

Révision 363

Ajouté par nacao il y a plus de 6 ans

Voir les différences:

branch/nan_cao/Emb_App/programme_principal_etud.c
short vitesse;
short vitourelle;
short num_piste;
int m;
int cap;
int numcap;
int couleurcap;
short m;
short cap;
short numcap;
short couleurcap;
short capteur;
CanFrame comm_ang;
CanFrame comm_vitesse;
......
void ang_roue(){
CanFrame req,reponse;
CanFrame req,reponse;
UINT flag;
while(1)
{
......
void vit(){
CanFrame req,reponse;
UINT flag;
while(1)
{ req.data.id='V';
......
comm_vitesse.data.id='V'; //vitesse de roue
comm_vitesse.data.rtr=0;
if(distance < 850) comm_vitesse.data.val=35;
//else if (couleurcap==56 && numcap==01) comm_vitesse.data.val = 70;
//else if (couleurcap==56 && numcap==02) comm_vitesse.data.val = 35;
//else if (capteur == 0x5601) comm_vitesse.data.val = 70;
//else if (capteur == 0x5602) comm_vitesse.data.val = 35;
else comm_vitesse.data.val=vitesse;
snd_dtq(CanTx,comm_vitesse.msg);
dly_tsk(10);
......
wai_flg(ev_periph, 0x05, TWF_ANDW,&flag);
m=periph[ADDR('M')].val; // contient la valeur de retour du simulateur.
num_piste=m & 0x007D;
snd_dtq(CanTx,comm.msg);
num_piste=m & 0x000F; // numero de piste
// mode_course = m & ;
// snd_dtq(CanTx,comm.msg);
}
}
void capteur(){
CanFrame req,reponse,comm;
UINT flag;
while(1)
{
{ dly_tsk(20);
req.data.id='C'; //le dernier capteur touche
req.data.rtr=1;
snd_dtq(CanRx, req.msg);
//Attente de la reponse
periph[ADDR('C')].ev=0x04;
snd_dtq(CanTx,req.msg);
wai_flg(ev_periph, 0x04, TWF_ANDW,&flag);
cap=periph[ADDR('C')].val; // contient la valeur de retour du simulateur.
couleurcap=cap & 0xff00; //couleur
numcap=cap & 0x00ff; //numero du capteur
if(cap==0x5601 & num_piste=3) {
vitesse=50;
snd_dtq(CanTx,comm_vitesse.msg);
}
couleurcap = cap >> 8; // 0XFF00 couleur de capteur
numcap = cap << 8; // 0x00FF numero de capteur
switch(couleurcap){
case 56:
capteur= 'V';
break;
}
}
}
*/
void main()
{
CanFrame comm;
......
sta_tsk(ID_ang_roue);
sta_tsk(ID_ang_tourelle);
sta_tsk(ID_vitesse);
// sta_tsk(ID_capteur);
// sta_tsk(ID_mode);
sta_tsk(ID_capteur);
sta_tsk(ID_mode);
sta_cyc(ID_acqui);
sta_tsk(ID_periph_rx);

Formats disponibles : Unified diff