Révision 320
Ajouté par rococcallo il y a plus de 6 ans
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
réglage sur piste rouge, tonneau et monté piste noir ok