Révision 363
Ajouté par nacao il y a plus de 6 ans
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