Révision 107
Ajouté par aueuphrasi il y a plus de 6 ans
branch/euphrasie_auguste/Emb_App/programme_principal_etud.c | ||
---|---|---|
//'I'/73/Ox49 : D?finition du nom du v?hicule. Doit d?buter par le caract?re '#' et entraine le chargement de la configuration de piste
|
||
// correspondant au nom du v?hicule si le nom se termine par '*'
|
||
|
||
void periph_command(char addr, short valeur);
|
||
short periph_requete(char addr);
|
||
|
||
int consigne = 450;
|
||
int k = 2;
|
||
int commande;
|
||
int ang_T;
|
||
|
||
CanFrame comm;
|
||
|
||
CanFrame requete, response;
|
||
short consigne = 450;
|
||
short k = 2;
|
||
short commande;
|
||
short ang_T;
|
||
|
||
|
||
void main()
|
||
{
|
||
|
||
|
||
{
|
||
ports_mcu();
|
||
lcd_init();
|
||
periph_init();
|
||
... | ... | |
LED_J=0;
|
||
dly_tsk(100);
|
||
|
||
//periph_command('V', 50);
|
||
|
||
//periph_write ('V', 50);
|
||
|
||
|
||
requete.data.id = 'R';
|
||
requete.data.rtr = 1;
|
||
snd_dtq (CanTx,requete.msg);
|
||
rcv_dtq(CanRx, &response.msg);
|
||
ang_T = response.data.val;
|
||
|
||
ang_T = periph_requete('R');
|
||
commande = k * (consigne - ang_T);
|
||
periph_write ('T', commande);
|
||
periph_command('T', commande);
|
||
}
|
||
}
|
||
|
||
void acqui()
|
||
{
|
||
LED_V=!LED_V;
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
void periph_command(char addr, short valeur){
|
||
CanFrame comm;
|
||
comm.data.id = addr;
|
||
comm.data.rtr = 0;
|
||
comm.data.val = valeur;
|
||
snd_dtq (CanTx, comm.msg);
|
||
}
|
||
short periph_requete(char addr){
|
||
CanFrame requete, response;
|
||
requete.data.id = addr;
|
||
requete.data.rtr = 1;
|
||
snd_dtq (CanTx,requete.msg);
|
||
rcv_dtq(CanRx, &response.msg);
|
||
return response.data.val;
|
||
}
|
Formats disponibles : Unified diff
aservissement position OK
Creation fonction pour demandes et envois simplifiés