Projet

Général

Profil

« Précédent | Suivant » 

Révision 43

Ajouté par anmaincent il y a plus de 6 ans

Fin de séance
debut de la fonction tri pour les messages T et U.
Commencement de la fonction distance mur

Voir les différences:

branch/maincent/tp_info6/Emb_App/programme_principal_etud.c
// disponible. 0xab avec a-> nombre de couleurs bien plac?es et b -> couleurs pr?sentes mais mal plac?es.
//'I'/73/Ox49 : D?finition du nom du v?hicule. Doit d?buter par le caract?re '#' et entraine le chargement de la configuration de piste
// correspondant au nom du v?hicule si le nom se termine par '*'
short alpha;
short d;
void tri(void)
{
CanFrame m;
while (1)
{
rcv dtq(CanRx,&m.msg); //Attente et lecture de la r?ponse
switch(m.data.id)
{
case 'T': //Tourelle
alpha = m.data.val;
break;
case 'U': //distance mur
d = m.data.val;
}
}
}
short k=1;
void asserv0(){
CanFrame requete, reponse, comm;
//commande en vitesse de la tourelle
CanFrame requete, reponse, comm;
//commande en vitesse de la tourelle
comm.data.id = 'T';
comm.data.rtr = 0; //indique une ecriture
comm.data.val = k*(-450-alpha);
comm.data.val = k*(-900-alpha);
snd_dtq(CanTx, comm.msg);
//position tourelle
requete.data.id='R';
requete.data.rtr=1; //Indique une requ?te de lecture
snd_dtq(CanTx, requete.msg);
// rcv_dtq(CanRx, &reponse.msg);
alpha=reponse.data.val;
//Avancer
/* comm.data.id = 'V';
comm.data.rtr = 0; //indique une ecriture
comm.data.val = 20;
snd_dtq(CanTx, comm.msg);
*/
}
void dist(){
CanFrame requete, reponse;
//distance mur
requete.data.id='U';
requete.data.rtr=1; //Indique une requ?te de lecture
snd_dtq(CanTx, requete.msg);
rcv_dtq(CanRx, &reponse.msg);
alpha=reponse.data.val;
if
d=reponse.data.val;
}
}
void main()
{
......
while(1)
{
asserv0();
sta_tsk(ID_asservtourelle);
sta_tsk(ID_dist);
sta_tsk(ID_tri);
}
}

Formats disponibles : Unified diff