Révision 174
Ajouté par rococcallo il y a plus de 6 ans
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
l'asservissement à l'air de marcher jusqu'à la ligne de départ, voir avec le problème du feux vert