Projet

Général

Profil

« Précédent | Suivant » 

Révision 150

Ajouté par gamatteozz il y a plus de 6 ans

fonction asservissement faite et fonction de vitesse en cours

Voir les différences:

branch/matteozzi/Emb_App/programme_principal_etud.c
// correspondant au nom du v?hicule si le nom se termine par '*'
unsigned short alpha=0;
unsigned short retour=0;
unsigned short consigne;
CanFrame comm;
CanFrame requete, reponse;
unsigned short vitesse;
void asservissement(consigne){
requete.data.id='R';
requete.data.rtr=1;
snd_dtq(CanTx, requete.msg);
rcv_dtq(CanRx, &reponse.msg);
retour=reponse.data.val;
if(consigne!=retour)
{
comm.data.id='T';
comm.data.rtr=0;
comm.data.val=consigne-retour;
snd_dtq(CanTx, comm.msg);
}
else
{
comm.data.id='T';
comm.data.rtr=0;
comm.data.val=0;
snd_dtq(CanTx, comm.msg);
}
}
void commande(vitesse){
comm.data.id='V';
comm.data.rtr=0;
comm.data.val=vitesse;
snd_dtq(CanTx, comm.msg);
}
void main()
{
CanFrame comm;
CanFrame requete, reponse;
ports_mcu();
lcd_init();
......
dly_tsk(100);
LED_J=0;
dly_tsk(100);
requete.data.id='R';
requete.data.rtr=1;
snd_dtq(CanTx, requete.msg);
rcv_dtq(CanRx, &reponse.msg);
alpha=reponse.data.val;
if(alpha>450)
{
comm.data.id='T';
comm.data.rtr=0;
comm.data.val=0;
snd_dtq(CanTx, comm.msg);
dly_tsk(10);
}
else
{
comm.data.id='T';
comm.data.rtr=0;
comm.data.val=100;
snd_dtq(CanTx, comm.msg);
dly_tsk(10);
}
asservissement(450);
commande(20);
}
}

Formats disponibles : Unified diff