Projet

Général

Profil

« Précédent | Suivant » 

Révision 217

Ajouté par stpouotong il y a plus de 6 ans

Fin de séance 2
-tâche vitesse, distance, tri fonctionnelle
-la voiture ne passe le circuit vert

Voir les différences:

trunk/tp_info6/Emb_App/programme_principal_etud.c
/*short vit;
short cmd_dist;*/
short D;
void tri (void)
{
CanFrame m;
while(1)
{
rcv_dtq(CanRx, &m.msg); //Attente et lecture de la reponse
switch(m.data.id){
case 'T' : //Tourelle
alpha = m.data.val;
break;
case 'U' : //Tourelle
D = m.data.val;
break;
}
}
}
void cmd_tourelle() //commande en vitesse de la tourelle
{
......
snd_dtq(CanTx, comm.msg);
}
void cmd_roue() //commande position des roues
void cmd_roue(short angle_roue) //commande angle des roues
{
CanFrame comm;
comm.data.id = 'D';
comm.data.rtr = 0; //Indique une ecriture
comm.data.val = -50;
comm.data.val = angle_roue;
snd_dtq(CanTx, comm.msg);
}
......
comm.data.id = 'V';
comm.data.rtr = 0; //Indique une ecriture
comm.data.val = 20;
comm.data.val = 30;
snd_dtq(CanTx, comm.msg);
}
}
void Asserv0() //asservissemt de la tourelle
{
......
erreur = consigne - alpha;
cmd = erreur*k;
}
/*void Asserv1() //asservissemt de la distance
{
short consigne=D;
short erreur;
short k=1;
erreur = consigne - D;
cmd_dist = erreur*k;
}
*/
void main()
{
ports_mcu();
......
sta_cyc(ID_acqui);
// sta_tsk(ID_periph_rx);
while(1)
{
LED_J=1;
dly_tsk(100);
LED_J=0;
dly_tsk(100);
pos_tourelle();distance();
pos_tourelle();
distance();
Asserv0();
//Asserv1();
cmd_tourelle();
/*//cmd_distance();
vitesse();
cmd_roue();*/
}
}
}
void acqui()

Formats disponibles : Unified diff