Projet

Général

Profil

« Précédent | Suivant » 

Révision 412

Ajouté par vidaval il y a plus de 6 ans

Bouton poussoir fonctionnel (un peu trop de message) lcd ok affiche les capteur et la piste mais petit problème de temps réel

Voir les différences:

branch/daval/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff0026
RESET=ff004e
branch/daval/Emb_App/programme_principal_etud.c
// Gestion piste et feu
int mode_course;
int feu_vert;
char feu_vert;
void mode2course(){
void mode2course(){ //Recuperation de l'info sur la couleur du feu et de la piste sur laquelle on est
CanFrame requete;
UINT flag;
while(1)
......
snd_dtq(CanTx, requete.msg);
wai_flg(ev_periph, 0x04, TWF_ANDW, &flag);
mode_course = periph[ADDR('M')].val;
feu_vert = mode_course && 0x8000;
feu_vert = (mode_course>>15)&& 0x01;
num_piste = mode_course;
dly_tsk(10);
switch(num_piste)
{
case 0x01 :
lcd_init();
lcd_com(0x80);
lcd_str("vert");
break;
case 0x02 :
lcd_init();
lcd_com(0x80);
lcd_str("bleu");
break;
case 0x01 :
lcd_init();
lcd_com(0x80);
lcd_str("rouge");
break;
case 0x01 :
lcd_init();
lcd_com(0x80);
lcd_str("noir");
break;
}
dly_tsk(20);
}
}
......
angle_corrige=k*(consigne-angle_mesure);
commande.data.val=angle_corrige;
snd_dtq (CanTx,commande.msg); //Envoi modification
dly_tsk(15);
dly_tsk(10);
}
}
CanFrame vitesse; //Sotie de la tache avance car utilis?e dans la tache de l'asservissment de cap
......
{
dly_tsk(2000);
if(feu_vert)
{
//if(feu_vert==1)
//{
vitesse.data.id='V'; //Envoi d'une commande en vitesse
......
{
switch(num_piste)
{
case 1: vitesse_rapide= 70;
vitesse_lente=40;
case 1: vitesse_rapide= 65;
vitesse_lente=35;
break;
case 2: vitesse_rapide= 40;
......
}
}*/
if(Bp_G==1)
while(Bp_G==1)
{
vitesse.data.val=0;
snd_dtq (CanTx,vitesse.msg);
}
dly_tsk(10);
dly_tsk(15);
}
}
dly_tsk(10);
//}
}
void distance_bord()
......
cap=0;
snd_dtq (CanTx,commande.msg);
}
dly_tsk(5);
dly_tsk(10);
}
}
......
capteur = periph[ADDR('C')].val;
couleur = capteur >> 8; //On decale pour avoir les 8 bits de poids forts : info sur la couleur
numero = capteur ;
dly_tsk(10);
switch(capteur)
{
case 0x5601 :
lcd_init();
lcd_com(0xC0);
lcd_str("vert");
break;
case 0x4a01 :
lcd_init();
lcd_com(0xC0);
lcd_str("jaune");
break;
case 0x5602 :
lcd_init();
lcd_com(0xC0);
lcd_str("vert");
break;
case 0x5202 :
lcd_init();
lcd_com(0xC0);
lcd_str("rouge");
break;
case 0x5603 :
lcd_init();
lcd_com(0xC0);
lcd_str("vert");
break;
case 0x4203 :
lcd_init();
lcd_com(0xC0);
lcd_str("bleu");
break;
case 0x5604 :
lcd_init();
lcd_com(0xC0);
lcd_str("vert");
break;
case 0x4304 :
lcd_init();
lcd_com(0xC0);
lcd_str("cyan");
break;
case 0x5605 :
lcd_init();
lcd_com(0xC0);
lcd_str("vert");
break;
}
dly_tsk(15);
}
}
......
vrcv_dtq(QdmTouche,&code_touche);
}
dly_tsk(30);
dly_tsk(25);
}
void main()
branch/daval/Emb_App/conf_noyau.cfg
name = ID_periph_rx;
stack_size = 256;
stack_section = stack;
priority = 2;
priority = 4;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_asservissement_tourelle;
stack_size = 256;
stack_section = stack;
priority = 3;
priority = 5;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_avance;
stack_size = 256;
stack_section = stack;
priority = 4;
priority = 2;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_distance_bord;
stack_size = 256;
stack_section = stack;
priority = 6;
priority = 7;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_asserv_cap;
stack_size = 256;
stack_section = stack;
priority = 5;
priority = 6;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_detection_capteur;
stack_size = 256;
stack_section = stack;
priority = 7;
priority = 8;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_mode2course;
stack_size = 256;
stack_section = stack;
priority = 8;
priority = 9;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_clavier;
stack_size = 256;
stack_section = stack;
priority = 9;
priority = 10;
initial_start = OFF;
exinf = 0x0;
};

Formats disponibles : Unified diff