Projet

Général

Profil

« Précédent | Suivant » 

Révision 395

Ajouté par rococcallo il y a plus de 6 ans

commit fin d'année

Voir les différences:

branch/Coccallotto/Emb_App/programme_principal_etud.c
short distance;
short dismur;
short trajectoire;
short vitesse;
float vitesse;
short vitesse2;
short tourelle2;
short reception;
float kroues;
float ktourelle;
......
char capteur;
short modecourse;
short stop;
short nombtour;
CanFrame comm;
CanFrame requete, reponse;
CanFrame req;
......
void acqroues(void);
void directionroues(void);
void valcapt(void);
void arret(void);
void arret(void);
void fin(void);
void main()
{
dismur=700; //distance mesurer par le capteur que l'on garde en constante ici
......
acqroues();
directionroues();
fin();
arret();
valcapt();
vitesse2=ad00;
tourelle2=ad01;
if(modecourse==0 || stop==1){
vitesse=0;
dly_tsk(50);
......
}
else
{
LED_R=0;
if(Bp_M==1){
vitesse=(ad01/10);
}
else{
switch(valeurpiste){
case 1: //sur la piste 1
vitesse=10;
......
}
break;
case 3: //sur la piste 3
vitesse=20;
vitesse=35;
switch (couleurcapt){//regarde la couleur du capteur
case 118:
if(numero==32){//si le num?ro est 32
......
}
break;
case 4: //sur la piste 4
vitesse=20;
switch (couleurcapt){ //regarde la couleur du capteur
case 86:
if(numero==1){
vitesse=65;
......
dismur=715;
}
if(numero==2){
vitesse=10;
vitesse=8;
kroues=2;
commande=700;
dismur=530;
dismur=530;
}
if(numero==3){
vitesse=30;
vitesse=40;
kroues=1.8;
dismur=700; //distance mesurer par le capteur que l'on garde en constante ici
dismur=700; // distance mesurer par le capteur que l'on garde en constante ici
commande=450;
}
if(numero==4){
......
break;
case 66:
if(numero==3){
vitesse=10;
vitesse=12;
kroues=1.6;
}
break;
}
break;
}
}
}
dly_tsk(15);
}
......
snd_dtq (CanTx,requete.msg);
//rcv_dtq (CanRx,&reponse.msg);
reception=periph[ADDR('R')].val;
alpha=(ktourelle*(commande-reception)); //asservissement de la commande tourelle
if(Bp_M==1){
alpha=(ktourelle*((2*(ad00-512))-reception)); // si bouton poussoir du milieu activer
}
else{
alpha=(ktourelle*(commande-reception)); //asservissement de la commande tourelle
}
comm.data.id='T'; //envoie de la donner du capteur tourelle
comm.data.rtr=0;
comm.data.val=alpha; //correcteur du capteur pour l'asserviseement (ici =45?)
......
void arret(void){
stop=Bp_G;
}
void fin(void){
requete.data.id='E'; //demande de reception de la donner du capteur tourelle
requete.data.rtr=1;
snd_dtq (CanTx,requete.msg);
//rcv_dtq (CanRx,&reponse.msg);
nombtour=periph[ADDR('E')].val;
}

Formats disponibles : Unified diff