Projet

Général

Profil

« Précédent | Suivant » 

Révision 69

Ajouté par jotoribio il y a plus de 6 ans

Fin de séance 2

Voir les différences:

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