Projet

Général

Profil

« Précédent | Suivant » 

Révision 117

Ajouté par khmbaye il y a plus de 6 ans

Asservissement non réussi
trouver distance pour tourner

Voir les différences:

branch/mbaye/Emb_App/programme_principal_etud.c
#include "carte_io.h"
#include "carte_m32.h"
#include <math.h>
int a;
unsigned int a; //valeur de l'angle lue
unsigned int d; //distance telemetre
unsigned int com; //commande
// Potentiometre: lire les registres ad00 et ad01, les valeurs sont sur 10 bits.
......
LED_J=0;
dly_tsk(100);*/
CanFrame comm;
comm.data.id='T'; comm.data.rtr=0; comm.data.val=120;
comm.data.id='T'; comm.data.rtr=0; comm.data.val=45;
snd_dtq (CanTx,comm.msg);
dly_tsk(100);
dly_tsk(100);
comm.data.id='R'; comm.data.rtr=1;
snd_dtq (CanTx,comm.msg);
a= periph[ADDR('R')].val;
if(a >90)
dly_tsk(100);
comm.data.id='V'; comm.data.rtr=0; comm.data.val=35;
snd_dtq (CanTx,comm.msg);
dly_tsk(100);
comm.data.id='U'; comm.data.rtr=1;
snd_dtq (CanTx,comm.msg);
d= periph[ADDR('R')].val;
dly_tsk(100);
comm.data.id='T'; comm.data.rtr=0; comm.data.val=com= 1.2*(45-a);
snd_dtq (CanTx,comm.msg);
dly_tsk(100);
if(d > 0x002d)
{
comm.data.id='T'; comm.data.rtr=0; comm.data.val=0;
comm.data.id='D'; comm.data.rtr=0; comm.data.val=-45;
snd_dtq (CanTx,comm.msg);
}
}
dly_tsk(100);
}
}
......
LED_V=!LED_V;
}
/*void envoi_commande()
{
CanFrame comm;
comm.data.id='T'; comm.data.rtr=0; comm.data.val=45;
snd_dtq (CanTx,comm.msg);
}*/
/*void reception_valeur()
{
CanFrame demande;
CanFrame reponse;
demande.data.id='R'; demande.data.rtr=1;
snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
a=reponse.data.val; //contient la valeur de retour du simulateur.
}*/

Formats disponibles : Unified diff