Bonsoir,
Je poste ce topic ici car programmé en C , il s'agit je pense de probleme de compilateur ou d'algorithme (definition de variables,..).
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.
comme vous pouvez le voir ici dans le code resumé:
CODE:
*variables globales*/
...
#define SQV PINF.0; ...
unsignedchar 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
) { case1:
case5:
case3:
....
while(1) { .....
switch(KEY
) { case4:
//button up case8:
//button down case12:
//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;
case7:
} KEY=
0;
}//condtion2 }//condtion1 }//while(1) }//mainFIN CODE
Est ce normal? Pourtant il s'agit de variables globales définies avant le main()
J'ai essayé les conditions suivantes en remplacant le "if(SQUELCH==0x00)"
par "if(SQV==0x00)"
ou par "if(PINF.0==0x00)"
Mais toujours pas de condition if detectée (car les instructions de ce bloc if ne s'executent pas)? Comment pourrais je verifier cette condition dans les boucles imbriquées, n'importe où dans le programme ?
Merci
DevelSoft