Révision 204
Ajouté par gamatteozz il y a plus de 6 ans
branch/matteozzi/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff0016
|
||
RESET=ff0018
|
branch/matteozzi/Emb_App/programme_principal_etud.c | ||
---|---|---|
CanFrame requete, reponse;
|
||
unsigned short vitesse;
|
||
unsigned short distance;
|
||
unsigned short cons_angl=450;
|
||
UINT flag;
|
||
|
||
void tourelle(){ //asservissement de l'angle de la tourelle
|
||
void tourelle(){ //asservissement de l'angle de la tourelle
|
||
while(1){
|
||
requete.data.id='R'; //demande de la requete R
|
||
requete.data.id='R'; //demande de la requete R
|
||
requete.data.rtr=1; //demande de lecture car rtr=1
|
||
periph[ADDR('R')].ev=0x01;
|
||
|
||
requete.data.rtr=1; //demande de lecture car rtr=1
|
||
snd_dtq(CanTx, requete.msg); //envoie de la demande dans CanTx
|
||
|
||
snd_dtq(CanTx, requete.msg); //envoie de la demande dans CanTx
|
||
|
||
rcv_dtq(CanRx, &reponse.msg); //recoie la demande dans CanRx
|
||
ang_lu=reponse.data.val; //recupere la valeur de l'angle dans retour
|
||
wai_flg(ev_periph, 0x01, TWF_ANDW, &flag); //recoie la demande dans CanRx
|
||
ang_lu=periph[ADDR('R')].val; //recupere la valeur de l'angle dans retour
|
||
|
||
comm.data.id='T'; //demande de la requete T
|
||
comm.data.rtr=0; //commande d'ecriture car rtr=0
|
||
comm.data.val=K*(450-ang_lu);
|
||
comm.data.id='T'; //demande de la requete T
|
||
comm.data.rtr=0; //commande d'ecriture car rtr=0
|
||
comm.data.val=K*(cons_angl-ang_lu);
|
||
snd_dtq(CanTx, comm.msg);
|
||
}
|
||
|
||
... | ... | |
capture_init();
|
||
|
||
sta_cyc(ID_acqui);
|
||
// sta_tsk(ID_periph_rx);
|
||
sta_tsk(ID_periph_rx);
|
||
sta_tsk(ID_tourelle);
|
||
// sta_tsk(ID_dist-tel);
|
||
while(1)
|
Formats disponibles : Unified diff
la tache asservissement fonctionnel avec l'activation de la tache de tri