Projet

Général

Profil

« Précédent | Suivant » 

Révision 320

Ajouté par rococcallo il y a plus de 6 ans

réglage sur piste rouge, tonneau et monté piste noir ok

Voir les différences:

branch/Coccallotto/Emb_App/programme_principal_etud.c
short numero;
short couleurcapt;
char capteur;
short modecourse;
//distance mesurer par le capteur que l'on garde en constante ici
CanFrame comm;
CanFrame requete, reponse;
......
vitesse=35; //commande de la vitesse des roues
vitesse=30; //commande de la vitesse des roues
......
sta_cyc(ID_acqui);
sta_tsk(ID_periph_rx);
acqtourelle();
dly_tsk(1000);
dly_tsk(1000);
while(1)
{
int pos;
......
directionroues();
valcapt();
/* if(modecourse==0){
vitesse=0;
}*/
switch(valeurpiste){ //couleur ('C','R','J','B' ou 'V')
case 1:
if(couleurcapt==86){//si le num?ro est 3
vitesse=75;
kroues=0.9;
}
switch(valeurpiste){
case 1: //sur la piste 1
if(couleurcapt==86){//si le num?ro est 3
vitesse=80;
kroues=1;
}
else{
vitesse=40;
kroues=1.8;
vitesse=40;
kroues=1.6;
}
break;
case 2:
case 2: ////sur la piste 2
if(couleurcapt==86){//si le num?ro est 3
vitesse=70; //vitesse dans la ligne droite
kroues=1.1;
}
else{ //vitesse dans les virages
vitesse=32;
kroues=1.6;
}
break;
case 3:
switch (couleurcapt){//regarde la couleur du capteur
case 86:
{
if(numero==3){//si le num?ro est 3
vitesse=45;
kroues=0;
case 3: //sur la piste 3
switch (couleurcapt){//regarde la couleur du capteur
case 118:
if(numero==32){//si le num?ro est 32
vitesse=45;
kroues=0;
}
break;
case 86:
{
vitesse=35;
kroues=2;
}
break;
case 66:{
vitesse=12;
kroues=1.6;
}
break;
}
else{
vitesse=35;
kroues=1.8;
break;
case 4: //sur la piste 4
switch (couleurcapt){ //regarde la couleur du capteur
case 86:
if(numero==1){
vitesse=65;
kroues=0.1;
dismur=715;
}
if(numero==2){
vitesse=10;
kroues=2;
commande=700;
dismur=530;
}
if(numero==3){
vitesse=30;
kroues=0;
}
break;
case 74:
if(numero==1){
vitesse=20;
kroues=1.6;
}
break;
}
}
break;
case 66:{
vitesse=12;
kroues=1.6;
}
break;
}
break;
case 4:
break;
}
dly_tsk(10);
}
break;
}
dly_tsk(15);
}
}
void acqui()
......
//rcv_dtq (CanRx,&reponse.msg);
distance=(periph[ADDR('U')].val);
if ((distance>900) || (distance<-900)){
if ((distance>1100) || (distance<-1100)){
distance=dismur;
}
else{
......
snd_dtq (CanTx,requete.msg);
//rcv_dtq (CanRx,&reponse.msg);
valeurpiste=(periph[ADDR('M')].val);
modecourse= valeurpiste >>14;
valeurpiste= valeurpiste&0x000F; //affiche le num?ro de la piste: 1= vert 2= bleu 3= rouge....
switch(couleurcapt){ //couleur ('C','R','J','B' ou 'V')
case 86:

Formats disponibles : Unified diff