Bonjour,

Je rencontre actuellement des problèmes sur une carte à base de 18F4680, le microcontroleur n'exécute pas le code comme prévu.

Par exemple, j'ai une variable qui vaut 0, j'ai le code suivant :
if (variable == 0) {
code a exécuter si la variable vaut 0
}
et pourtant, le code a exécuter si la variable vaut 0 ne l'est jamais !!

La variable est une variable globale, initialisée au début de mon programme, et dont la valeur ne change jamais.
J'ai vérifié la valeur de la variable dans le debugger (avec une sonde ICD2), fait du pas à pas et constaté que le if est bien testé, mais le programme se comporte comme si la valeur de variable était différente de 0.

Dans un document de Microchip, j'ai trouvé une mise en garde concernant l'utilisation du compilateur C18 dans un projet utilisant 2 niveaux d'interruption, une mauvaise configuration pouvant visiblement entraîner une corruption de données. Je me demande si le problème ne peut pas venir de là...

Quelqu'un a-t-il déjà rencontré ce genre de problème ?
A quoi faut-il faire attention quand on veut utiliser 2 niveaux d'interruption avec le C18 ?

Merci d'avance, cordialement.