Révision 43
Ajouté par anmaincent il y a plus de 6 ans
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
Fin de séance
debut de la fonction tri pour les messages T et U.
Commencement de la fonction distance mur