Bonsoir,
Je reposte ce topic ( deja sur le topic conception)pour être dans le topic qui convient le mieux à ce problème pensant qu'il s'agissait de probleme de conception.
Il s'agit de la programmation d'un système à microcontrolleur.
Mon probleme est que la condition : if(SQUELCH==0x00) detectée dans la boucle principale ne se detecte pas si elle est utilisé dans des boucles imbriquées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93 /*variables globales*/ ... #define SQV PINF.0; ... unsigned char SQUELCH; ... main() { .... while(1) { .. if(test==0x01) { SQUELCH=SQV; PORTG=PORTG & 0b11110111; ... } if(SQUELCH==0x00) //ICI condition se detecte bien { PORTG=PORTG & 0b11110111; lcd_gotoxy(17,0);lcd_putsf(" S"); ... } ... if(condition1) { .. if(condition2) { switch(KEY) { case 1: case 5: case 3: .... while(1) { ..... switch(KEY) { case 4: //button up case 8: //button down case 12: //button validation for outgoing } if(SQUELCH==0x00) //ICI pas detecté alors que signal // existant { PORTG=PORTG & 0b11110111; lcd_gotoxy(17,0);lcd_putsf(" S"); } if(KEY==12) break; } KEY=0; case 7: } KEY=0; } //condtion2 } //condtion1 } //while(1) } //main
Est ce normal? Pourtant il s'agit de variables globales
J'ai essayé les conditions suivantes if(SQUELCH==0x00)
if(SQV==0x00)
if(PINF.0==0x00)
Mais toujours rien de detecté ? comment je peux verifier cette condtin dans les boucles imbriquées, n'importe où dans le programme ?
Merci
Partager