Projet

Général

Profil

« Précédent | Suivant » 

Révision 165

Ajouté par audercoux il y a plus de 6 ans

asservissement de la tourelle fait

Voir les différences:

branch/decroux/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 '*'
unsigned int alpha;
int k=1;
int dis;
void asservissemt_tourelle(void)
{
CanFrame comm;
CanFrame requete;
CanFrame reponse;
comm.data.id='T'; //Commade en vitesse de la tourelle poant le t?l?metre
comm.data.rtr=0;
comm.data.val=100;
snd_dtq (CanTx,comm.msg);
requete.data.id='R'; //Lecture de l'angle effecif de la tourelle portant le t?l?mtre
requete.data.rtr=1; // Indiquation d'une requ?te d'?criture
snd_dtq (CanTx,requete.msg); // Interrogation du peripherique
rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
alpha=reponse.data.val; // contient la valeur de retour du simulateur.
if(alpha!=450)
{
comm.data.id='T'; //Commade en vitesse de la tourelle poant le t?l?metre
comm.data.rtr=0;
comm.data.val=k*(450-alpha);
snd_dtq (CanTx,comm.msg);
}
}
void mesure_distance(void)
{
CanFrame requete;
CanFrame reponse;
requete.data.id='U'; //Distance mesur?e par le t?l?m?tre
requete.data.rtr=1; // Indiquation d'une requ?te d'?criture
snd_dtq (CanTx,requete.msg); // Interrogation du peripherique
rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
dis=reponse.data.val; // contient la valeur de retour du simulateur.
}
void main()
{
{
ports_mcu();
lcd_init();
periph_init();
......
// sta_tsk(ID_periph_rx);
while(1)
{
{
//CanFrame vit;
asservissemt_tourelle();
mesure_distance();
//vit.data.id='V'; //Commande en vitesse des rous moicesd v?icule
//vit.data.rtr=0;
//vit.data.val=100;
//snd_dtq (CanTx,vit.msg);
LED_J=1;
dly_tsk(100);
LED_J=0;

Formats disponibles : Unified diff