Projet

Général

Profil

« Précédent | Suivant » 

Révision 204

Ajouté par gamatteozz il y a plus de 6 ans

la tache asservissement fonctionnel avec l'activation de la tache de tri

Voir les différences:

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