bonjour,
j'utilise le compilateur pic en c de hightechtools version 9.70 et maplab 8.43
je veux utiliser la commande eeprom_write (0,0) dans mon fichier main.c et la le compilateur se plante avec un message windows.
en faisant plusieur essai, j'ai remarque que je ne peux pas utiliser cette fonction dans l'interupt et dans un autre fichier.
cela fonctionne si je ne l'utilise que dans la fonction d'interupt global "void interrupt my_isr (void)" ou alors que dans les autre fichier.
je pense qu'il s'agit d'un bug du compilateur, je vais de ce fait poser la question au service technique de microchip,
mais avez vous deja rencontrer ce probleme ou avez vous une idée afin de le resoudre.
dans mon cas, je détecte un power down via un interupt sur l'entrée RB1 configurée en comparateur, quand l'interupt intervient, je vérifie si je dois sauvegardé des valeur, ceci afin de ne pas écrire inutilement en eeprom. au démarrage je lis ces valeur afin de les réutilisé et alors si celle ci sont ne sont pas à 0, je les remets a 0 en eeprom.
j'ai contourné le problème en mettant un flag à un pour indiquer qu'une remise a zéro est nécessaire, cette remise a 0 sera faite dans l'interupt timer 0 que j'utilise pour cadencer le programme à 10ms. après écriture, le flag est remis a 0 pour ne plus réecrire.
j'ai mis en pièce jointe deux print screen de l'erreur et mon programme complet, la ligne de commande qui crée ici l'erreur est en main.c entourée de commentaire en anglais pour le service technique de microchip.
merci pour votre aide.
-----