Projet

Général

Profil

« Précédent | Suivant » 

Révision 248

Ajouté par casotty il y a plus de 6 ans

Ajout d'une mise à jour des données pour ne faire que l'asservissement dans les fonctions d'asservissement

Voir les différences:

branch/sotty/Emb_App/programme_principal_etud.c
}
void maj_variables(void){
//Angle des roues
distance_mur = distance_telemetre()*sin(3.1415*angle_tourelle/1800.0);
if(distance_mur > 1200) { //Trou dans le mur
ang_roue = 0;
}
else {
ang_roue = K_roue*(distance_mur-500);
}
}
void asserv_roue(VP_INT stacd){
//Maintient de la voiture au centre de la piste
while(1){
//Angle des roues // A enlever de la boucle d'asserv
distance_mur = distance_telemetre()*sin(3.1415*angle_tourelle/1800.0);
if(distance_mur > 1200) { //Trou dans le mur
ang_roue = 0;
}
else {
ang_roue = K_roue*(distance_mur-500);
}
maj_variables();
angle_roue(ang_roue);
vitesse_roue(vit_roue);
dly_tsk(50);
}
}
......
req.data.id = id_periph;
req.data.rtr = 1; // envoie d'une requete de lecture
periph[ADDR(id_periph)].ev = 0x01; //declenche un evenement quand mise a jour du peripherique id_periph
//dly_tsk(5);
snd_dtq(CanTx, req.msg); // attente de la reponse
wai_flg(ev_periph, 0x01, TWF_ANDW, &flag);
periph[ADDR(id_periph)].ev = 0x00;

Formats disponibles : Unified diff