Révision 54
Ajouté par tibacher il y a plus de 6 ans
branch/bacher/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff001e
|
||
RESET=ff0026
|
branch/bacher/Emb_App/programme_principal_etud.c | ||
---|---|---|
//'j'/106/06A : R?cup?ration du r?sultat de dernier code envoy?. 0x77 si aucun code n'a ?t? soumis. <0 si la r?ponse n'est pas
|
||
// disponible. 0xab avec a-> nombre de couleurs bien plac?es et b -> couleurs pr?sentes mais mal plac?es.
|
||
//'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 '*'
|
||
// correspondant au nom du v?hicule si le nom se termine par '*'
|
||
|
||
|
||
int cons=450; //contient la consigne
|
||
int retour=0; //contient la valeur retourner par le p?riph
|
||
int k=1; //contient le gain du correcteur
|
||
int valeur=0; //contient la valeur ? envoyer
|
||
int distance=0;
|
||
int cons_roue=12522;
|
||
int valeur_roue=0;
|
||
int ang_roue=0;
|
||
|
||
CanFrame vit_roue;
|
||
CanFrame requete;
|
||
CanFrame dist;
|
||
CanFrame rot_roue;
|
||
|
||
void asserv0()
|
||
{
|
||
... | ... | |
demande.data.rtr=1;
|
||
|
||
snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
|
||
rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
|
||
retour=reponse.data.val; // contient la valeur de retour du simulateur.
|
||
retour=periph[ADDR('R')].val; // contient la valeur de retour du simulateur.
|
||
|
||
comm.data.id='T';
|
||
comm.data.rtr=0;
|
||
comm.data.val=valeur;
|
||
snd_dtq (CanTx,comm.msg); //on envoie la modification ? effectuer
|
||
if(retour!=cons) valeur=k*(cons-retour);
|
||
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
void main()
|
||
{
|
||
|
||
|
||
|
||
ports_mcu();
|
||
lcd_init();
|
||
... | ... | |
capture_init();
|
||
|
||
sta_cyc(ID_acqui);
|
||
// sta_tsk(ID_periph_rx);
|
||
sta_tsk(ID_periph_rx);
|
||
sta_tsk(ID_asserv0);
|
||
|
||
while(1)
|
||
{
|
||
//LED_J=1;
|
||
//dly_tsk(100);
|
||
//LED_J=0;
|
||
//dly_tsk(100);
|
||
{
|
||
vit_roue.data.id='V';
|
||
vit_roue.data.rtr=0;
|
||
vit_roue.data.val=10;
|
||
snd_dtq (CanTx,vit_roue.msg);
|
||
|
||
/*
|
||
requete.data.id='U';
|
||
requete.data.rtr=1;
|
||
snd_dtq(CanTx, requete.msg);
|
||
rcv_dtq(CanRx, &dist.msg);
|
||
distance=requete.data.val;
|
||
if (distance!=cons_roue){
|
||
rot_roue.data.id='D';
|
||
rot_roue.data.rtr=0;
|
||
rot_roue.data.val=ang_roue-10;
|
||
snd_dtq (CanTx,rot_roue.msg);
|
||
} */
|
||
}
|
||
}
|
||
|
Formats disponibles : Unified diff
tourelle asservie en position avec l'utilisation de ID_periph_RX