Projet

Général

Profil

« Précédent | Suivant » 

Révision 445

Ajouté par maporte3 il y a plus de 6 ans

ajout du compteur de tour et arret après 3 tours

Voir les différences:

branch/porte/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff0088
RESET=ff00b4
branch/porte/Emb_App/programme_principal_etud.c
unsigned short Vitesse_vert=50,Vitesse_bleu=37,Vitesse_rouge=30, Vitesse_noir=12;
unsigned short Vitesse_vert_virage=33, Vitesse_bleu_virage=28, Vitesse_rouge_virage=23, Vitesse_rouge_saut=45;
//Variable de la fonction Capteur
unsigned int Info_capteur, couleur_capteur, num_capteur;
unsigned int Info_capteur, couleur_capteur, num_capteur, num_capteur_pre;
//Variable de la fonction Distance_bord
unsigned int Bord_defaut=0, ecart=500, distance_bord_vert=810, distance_bord=780, distance_bord_noir=500;
//Variable des fonctions IHM
......
short Temps=0, centaine, dizaine, unite;
char Temps_char_unite=0x30, Temps_char_dizaine=0x30, Temps_char_centaine=0x30;
//Variable de la fonction Circuit
unsigned int Info_circuit, Etat_feu, Num_circuit=0, Depart_ok=0, Arret_urgence=0;
unsigned int Info_circuit, Etat_feu, Num_circuit=0, Depart_ok=0, Arret_urgence=0, tour=0, test_tour=1;
//Variable de la fonction Evenement
unsigned int Lecture_eve;
FLGPTN test;
......
Info_capteur=periph[ADDR('C')].val; // contient la valeur de retour du simulateur sur le dernier capteur touch?.
couleur_capteur=Info_capteur >> 4;
num_capteur=Info_capteur << 4;
num_capteur_pre=num_capteur;
if(num_capteur_pre != num_capteur){test_tour=1;}
if(num_capteur == 0x6050 && test_tour == 1 ){ tour=tour+1; test_tour=0;} //compte le nombre de tour
if(tour == 3){Arret_urgence = 1;} //Arret de la voiture apr?s 3 tours
dly_tsk(100);
}
......
}
break;
case 4:
if(Distance > distance_bord_noir+ecart || Distance < distance_bord_noir-ecart){
if(Distance > distance_bord+ecart || Distance < distance_bord-ecart){
Bord_defaut=1;
}
else{
......
}
break;
default :
if(Distance > distance_bord_noir+ecart || Distance < distance_bord_noir-ecart){
if(Distance > distance_bord+ecart || Distance < distance_bord-ecart){
Bord_defaut=1;
}
else{
......
if(Bp_D == 0){
lcd_init();
switch(Num_circuit){
case 1: lcd_str("VERT"); break;
case 2: lcd_str("BLEU"); break;
case 3: lcd_str("ROUGE"); break;
case 4: lcd_str("NOIR"); break;
case 1: lcd_str("P:VERT"); break;
case 2: lcd_str("P:BLEU"); break;
case 3: lcd_str("P:ROUGE"); break;
case 4: lcd_str("P:NOIR"); break;
default : lcd_str("Inconnu");
}
lcd_putc('|');
switch(couleur_capteur){
case 0x560: lcd_str("VERT"); break;
case 0x430: lcd_str("NOIR"); break;
case 0x520: lcd_str("ROUGE"); break;
case 0x4a0: lcd_str("JAUNE"); break;
case 0x420: lcd_str("BLEU"); break;
case 0x630: lcd_str("CYAN"); break;
case 0x560: lcd_str("C:VERT"); break;
case 0x430: lcd_str("C:NOIR"); break;
case 0x520: lcd_str("C:ROUGE"); break;
case 0x4a0: lcd_str("C:JAUNE"); break;
case 0x420: lcd_str("C:BLEU"); break;
case 0x630: lcd_str("C:CYAN"); break;
default : lcd_str("!!");
}
lcd_putc('|');

Formats disponibles : Unified diff