Revision 445 branch/porte/Emb_App/programme_principal_etud.c
programme_principal_etud.c | ||
---|---|---|
139 | 139 |
unsigned short Vitesse_vert=50,Vitesse_bleu=37,Vitesse_rouge=30, Vitesse_noir=12; |
140 | 140 |
unsigned short Vitesse_vert_virage=33, Vitesse_bleu_virage=28, Vitesse_rouge_virage=23, Vitesse_rouge_saut=45; |
141 | 141 |
//Variable de la fonction Capteur |
142 |
unsigned int Info_capteur, couleur_capteur, num_capteur; |
|
142 |
unsigned int Info_capteur, couleur_capteur, num_capteur, num_capteur_pre;
|
|
143 | 143 |
//Variable de la fonction Distance_bord |
144 | 144 |
unsigned int Bord_defaut=0, ecart=500, distance_bord_vert=810, distance_bord=780, distance_bord_noir=500; |
145 | 145 |
//Variable des fonctions IHM |
... | ... | |
147 | 147 |
short Temps=0, centaine, dizaine, unite; |
148 | 148 |
char Temps_char_unite=0x30, Temps_char_dizaine=0x30, Temps_char_centaine=0x30; |
149 | 149 |
//Variable de la fonction Circuit |
150 |
unsigned int Info_circuit, Etat_feu, Num_circuit=0, Depart_ok=0, Arret_urgence=0; |
|
150 |
unsigned int Info_circuit, Etat_feu, Num_circuit=0, Depart_ok=0, Arret_urgence=0, tour=0, test_tour=1;
|
|
151 | 151 |
//Variable de la fonction Evenement |
152 | 152 |
unsigned int Lecture_eve; |
153 | 153 |
FLGPTN test; |
... | ... | |
351 | 351 |
Info_capteur=periph[ADDR('C')].val; // contient la valeur de retour du simulateur sur le dernier capteur touch?. |
352 | 352 |
couleur_capteur=Info_capteur >> 4; |
353 | 353 |
num_capteur=Info_capteur << 4; |
354 |
num_capteur_pre=num_capteur; |
|
354 | 355 |
|
356 |
if(num_capteur_pre != num_capteur){test_tour=1;} |
|
357 |
if(num_capteur == 0x6050 && test_tour == 1 ){ tour=tour+1; test_tour=0;} //compte le nombre de tour |
|
358 |
if(tour == 3){Arret_urgence = 1;} //Arret de la voiture apr?s 3 tours |
|
359 |
|
|
355 | 360 |
dly_tsk(100); |
356 | 361 |
} |
357 | 362 |
|
... | ... | |
404 | 409 |
} |
405 | 410 |
break; |
406 | 411 |
case 4: |
407 |
if(Distance > distance_bord_noir+ecart || Distance < distance_bord_noir-ecart){
|
|
412 |
if(Distance > distance_bord+ecart || Distance < distance_bord-ecart){
|
|
408 | 413 |
Bord_defaut=1; |
409 | 414 |
} |
410 | 415 |
else{ |
... | ... | |
412 | 417 |
} |
413 | 418 |
break; |
414 | 419 |
default : |
415 |
if(Distance > distance_bord_noir+ecart || Distance < distance_bord_noir-ecart){
|
|
420 |
if(Distance > distance_bord+ecart || Distance < distance_bord-ecart){
|
|
416 | 421 |
Bord_defaut=1; |
417 | 422 |
} |
418 | 423 |
else{ |
... | ... | |
474 | 479 |
if(Bp_D == 0){ |
475 | 480 |
lcd_init(); |
476 | 481 |
switch(Num_circuit){ |
477 |
case 1: lcd_str("VERT"); break; |
|
478 |
case 2: lcd_str("BLEU"); break; |
|
479 |
case 3: lcd_str("ROUGE"); break; |
|
480 |
case 4: lcd_str("NOIR"); break; |
|
482 |
case 1: lcd_str("P:VERT"); break;
|
|
483 |
case 2: lcd_str("P:BLEU"); break;
|
|
484 |
case 3: lcd_str("P:ROUGE"); break;
|
|
485 |
case 4: lcd_str("P:NOIR"); break;
|
|
481 | 486 |
default : lcd_str("Inconnu"); |
482 | 487 |
} |
483 | 488 |
lcd_putc('|'); |
484 | 489 |
switch(couleur_capteur){ |
485 |
case 0x560: lcd_str("VERT"); break; |
|
486 |
case 0x430: lcd_str("NOIR"); break; |
|
487 |
case 0x520: lcd_str("ROUGE"); break; |
|
488 |
case 0x4a0: lcd_str("JAUNE"); break; |
|
489 |
case 0x420: lcd_str("BLEU"); break; |
|
490 |
case 0x630: lcd_str("CYAN"); break; |
|
490 |
case 0x560: lcd_str("C:VERT"); break;
|
|
491 |
case 0x430: lcd_str("C:NOIR"); break;
|
|
492 |
case 0x520: lcd_str("C:ROUGE"); break;
|
|
493 |
case 0x4a0: lcd_str("C:JAUNE"); break;
|
|
494 |
case 0x420: lcd_str("C:BLEU"); break;
|
|
495 |
case 0x630: lcd_str("C:CYAN"); break;
|
|
491 | 496 |
default : lcd_str("!!"); |
492 | 497 |
} |
493 | 498 |
lcd_putc('|'); |
Also available in: Unified diff