Bonjour à tous.
Je suis actuellement en stage et je programme un atmega 128 pour faire une transformée de fourrier rapide, enregistré les résultats, et comparer certains résultats à des valeurs pré enregistrées.
La transformée de fourrier en elle-même se passe plutôt bien, mais j'ai quelques soucis avec la gestion de l'eeprom. Je stocke en effet les données maximales relevées dans le spectre dans l'eeprom, et si certaines restent écrites correctement dans l'eeprom (en gros les 55 dernières), les autres prennent des valeurs fantaisistes.
De même pour la comparaison, j'enregistre des valeurs via une communication série dans l'eeprom, avant de les lire pour les comparer à mes valeurs, mais si juste après les avoir écrites, les valeurs restent correctes, elles ne le restent pas après quelques boucles de mon programme.
Les boucles sont organisées de cette manière :
-Transformée de fourrier
-Comparaison
-Enregistrement des valeurs maximales
et ça boucle.
avec à chaque étape la possibilité en réaction d'interruption par le port série de lire les valeurs maximales enregistrées, d'effacer ces valeurs, et de mettre dans l'eeprom mes seuils de comparaisons.
Je ne sais pas exactement quels morceaux de code mettre mais si vous voulez en voir certains, je serais ravi de vous les fournir.
En remarque, je travaille en C, avec ICC AVR et je programme avec un ISP-6.
Afin de voir un peu où cela ne fonctionnait pas, j'ai demandé à mon programme de me montrer ce qu'il comptait enregistrer en eeprom, puis ce que je lisais dans l'eeprom juste après l'enregistrement, et les deux correspondent.
Je pense donc que la phase d'écriture dans l'eeprom se passe bien.
J'ai regardé le datasheet et ils n'en parlent pas donc je suppose que ce n'est pas réellement possible, mais est ce que quelque chose peut "corrompre" l'eeprom pendant que le microcontrolleur lit les valeurs ?
Par exemple, est ce que pendant l'étape lecture des valeurs, puis comparaison avec le spectre, les valeurs stockées peuvent être modifiés ?
Voilà, en vous remerciant d'avoir lu tout ça et en espérant que vous pourrez m'aider.
Cordialement
Eusèbe
-----