Révision 150
Ajouté par gamatteozz il y a plus de 6 ans
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
fonction asservissement faite et fonction de vitesse en cours