Révision 330
Ajouté par crzemeta il y a plus de 6 ans
branch/zemeta/Emb_App/programme_principal_etud.c | ||
---|---|---|
// correspondant au nom du v?hicule si le nom se termine par '*'
|
||
CanFrame comm,comm2,comm3;
|
||
unsigned short k=1,k2=1, angle_reel, error,error2,d_reel,D=714, d_max = 2000 ; // D = 500 pour piste verte , D = 714 pour piste verte
|
||
unsigned short consigne_tour = 450 , vitesse = 35 ; // V = 30 pour piste verte , V = 38 pour piste bleu
|
||
CanFrame requete,requete3 ;
|
||
unsigned short consigne_tour = 450 , vitesse = 10, capt_detecte ; // V = 30 pour piste verte , V = 38 pour piste bleu
|
||
CanFrame requete,requete3,requete4 ;
|
||
char gap = 0;
|
||
|
||
|
||
... | ... | |
sta_tsk(ID_periph_rx);
|
||
|
||
//sta_cyc(ID_acqui);
|
||
//sta_tsk(id_trou);
|
||
|
||
|
||
sta_tsk(id_capt);
|
||
sta_tsk(id_angle);
|
||
sta_tsk(id_ass_t);
|
||
sta_tsk(id_roue);
|
||
... | ... | |
requete.data.id = 'R' ; // variable requete sert a envoyter une requete.
|
||
requete.data.rtr = 1 ;
|
||
snd_dtq(CanTx, requete.msg);
|
||
dly_tsk(10) ;
|
||
angle_reel = periph[ADDR('R')].val;
|
||
dly_tsk(5) ;
|
||
angle_reel = periph[ADDR('R')].val;
|
||
dly_tsk(10) ;
|
||
|
||
}
|
||
}
|
||
... | ... | |
comm.data.rtr = 0 ;
|
||
comm.data.val = vitesse ;
|
||
snd_dtq(CanTx, comm.msg) ;
|
||
dly_tsk(10);
|
||
dly_tsk(5);
|
||
}
|
||
}
|
||
|
||
... | ... | |
comm.data.rtr = 0 ;
|
||
comm.data.val = k*error ;
|
||
snd_dtq(CanTx, comm.msg) ;
|
||
dly_tsk(10) ;
|
||
dly_tsk(5) ;
|
||
}
|
||
}
|
||
|
||
... | ... | |
comm2.data.rtr = 0 ;
|
||
comm2.data.val = -k2*error2 ;
|
||
snd_dtq(CanTx, comm2.msg) ;
|
||
dly_tsk(5) ;
|
||
}
|
||
dly_tsk(10) ;
|
||
}
|
||
... | ... | |
}
|
||
|
||
|
||
|
||
void trou()
|
||
{
|
||
while(1)
|
||
... | ... | |
comm2.data.id = 'D' ;
|
||
comm2.data.rtr = 0 ;
|
||
comm2.data.val = 0 ;
|
||
snd_dtq(CanTx, comm2.msg) ;
|
||
snd_dtq(CanTx, comm2.msg) ;
|
||
dly_tsk(5) ;
|
||
}
|
||
dly_tsk(10) ;
|
||
}
|
||
}
|
||
|
||
void capteur()
|
||
{
|
||
while (1)
|
||
{
|
||
requete.data.id = 'C' ;
|
||
requete.data.rtr = 1 ;
|
||
snd_dtq(CanTx, requete.msg);
|
||
dly_tsk(5) ;
|
||
capt_detecte = periph[ADDR('C')].val;
|
||
}
|
||
}
|
||
|
branch/zemeta/Emb_App/conf_noyau.cfg | ||
---|---|---|
};
|
||
|
||
|
||
task[]{
|
||
entry_address = capteur();
|
||
name = id_capt;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 2;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
|
||
flag[]{
|
||
name = ev_bus_fin_tr;
|
||
initial_pattern = 0x0000;
|
Formats disponibles : Unified diff
Detection des capteurs sur periph C : ok