Révision 69
Ajouté par jotoribio il y a plus de 6 ans
branch/toribio/Emb_App/programme_principal_etud.c | ||
---|---|---|
short alpha;
|
||
short distance;
|
||
short angleR;
|
||
short vitesse;
|
||
|
||
void asserv0(){
|
||
while(1){
|
||
short k=1; //Gain du correcteur P
|
||
//lecture de la position de la tourelle
|
||
CanFrame req,comm;
|
||
... | ... | |
comm.data.rtr=0; //indique une ?criture
|
||
comm.data.val=k*(450/*ou ad00*/-alpha);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
|
||
}
|
||
|
||
void dist(){
|
||
void dist(){while(1){
|
||
//lecture de la distance du mur
|
||
CanFrame req;
|
||
UINT flag;
|
||
... | ... | |
//Attente de la r?ponse
|
||
wai_flg (ev_periph, 0x02, TWF_ANDW, &flag);
|
||
distance=periph[ADDR('U')].val;
|
||
dly_tsk(5);}
|
||
|
||
}
|
||
|
||
void roue(){
|
||
void roue(){while(1){
|
||
short k=2; //Gain du correcteur P
|
||
//lecture de la position de la roue
|
||
CanFrame req,comm;
|
||
... | ... | |
//Commande de l'angle de roue
|
||
comm.data.id='D';
|
||
comm.data.rtr=0; //indique une ?criture
|
||
comm.data.val=k*(distance-637);
|
||
snd_dtq(CanTx, comm.msg);
|
||
|
||
comm.data.val=k*(distance-700);
|
||
snd_dtq(CanTx, comm.msg);
|
||
dly_tsk(5);
|
||
}
|
||
}
|
||
void demare(){
|
||
|
||
CanFrame requete;
|
||
//verif avec vitesse
|
||
dly_tsk(6000);
|
||
requete.data.id='V';
|
||
requete.data.rtr=0;
|
||
requete.data.val=45;
|
||
snd_dtq(CanTx, requete.msg);
|
||
|
||
dly_tsk(6000);
|
||
requete.data.id='V';
|
||
requete.data.rtr=0;
|
||
requete.data.val=40;
|
||
snd_dtq(CanTx, requete.msg);
|
||
dly_tsk(5);
|
||
|
||
while(1)
|
||
{requete.data.id='V';
|
||
requete.data.rtr=0;
|
||
requete.data.val=40;
|
||
snd_dtq(CanTx, requete.msg);
|
||
dly_tsk(5);}
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
void main()
|
||
{
|
||
... | ... | |
sta_cyc(ID_acqui);
|
||
sta_tsk(ID_periph_rx);
|
||
|
||
|
||
sta_tsk(ID_demare);
|
||
sta_tsk(ID_asserv0);
|
||
sta_tsk(ID_dist);
|
||
sta_tsk(ID_roue);
|
||
|
||
|
||
|
||
|
||
|
||
while(1)
|
||
{
|
||
|
||
... | ... | |
dly_tsk(100);
|
||
LED_J=0;
|
||
dly_tsk(100);*/
|
||
sta_tsk(ID_demare);
|
||
sta_tsk(ID_asserv0);
|
||
sta_tsk(ID_dist);
|
||
sta_tsk(ID_roue);
|
||
|
||
|
||
|
||
|
||
}
|
||
}
|
branch/toribio/Emb_App/conf_noyau.cfg | ||
---|---|---|
|
||
};
|
||
|
||
|
||
|
||
task[]{
|
||
entry_address = periph_tx();
|
Formats disponibles : Unified diff
Fin de séance 2