Projet

Général

Profil

« Précédent | Suivant » 

Révision 174

Ajouté par rococcallo il y a plus de 6 ans

l'asservissement à l'air de marcher jusqu'à la ligne de départ, voir avec le problème du feux vert

Voir les différences:

branch/Coccallotto/Emb_App/programme_principal_etud.c
const k;
short commande;
short distance;
short dismur;
short trajectoire;
k=1;
CanFrame comm;
......
void main()
{
commande=450;
commande=450; //commande de la valeur de la tourelle
dismur=0x0350; //distance mesurer par le capteur
ports_mcu();
lcd_init();
periph_init();
......
while(1)
{
requete.data.id='R';
requete.data.id='R'; //demande de reception de la donner du capteur tourelle
requete.data.rtr=1;
snd_dtq (CanTx,requete.msg);
rcv_dtq (CanRx,&reponse.msg);
alpha=(commande-reponse.data.val);
alpha=(commande-reponse.data.val); //asservissement de la commande tourelle
comm.data.id='T';
comm.data.id='T'; //envoie de la donner du capteur tourelle
comm.data.rtr=0;
comm.data.val=alpha;
comm.data.val=alpha; //correcteur du capteur pour l'asserviseement (ici =45?)
snd_dtq (CanTx,comm.msg);
requete.data.id='U';
requete.data.id='U'; //distance mesurer par le t?l?metre
requete.data.rtr=1;
snd_dtq (CanTx,requete.msg);
rcv_dtq (CanRx,&reponse.msg);
distance=(reponse.data.val);
trajectoire=( distance-dismur); //asservisement pour les roues
comm.data.id='V';
comm.data.id='D'; //commande des roues
comm.data.rtr=0;
comm.data.val=0;
comm.data.val=trajectoire;
snd_dtq (CanTx,comm.msg);
comm.data.id='V'; //commande de la vitesse
comm.data.rtr=0;
comm.data.val=5;
snd_dtq (CanTx,comm.msg);
LED_J=1;
dly_tsk(100);
LED_J=0;

Formats disponibles : Unified diff