je viens vers vous pour trouver de l'aide sur mon projet de chronomètre à base de barrière infrarouge.
carte débarquée
cible arduino mini pro
capteur IR tsop1738
LCD 16x2 en I2C
carte embarqué
cible arduino mini pro
émetteur IR
fonctionnel:
une carte embarquée émet un code en IR.
La carte débarqué reçoit le signal IR, récupère le code IR et stocke le temps du passage.
je vous expose la problématique:
lors de la compilation je n'ai aucune erreur de code et la taille total du code est inférieur au max de la mémoire ("Taille binaire du croquis : 22 730 octets (d'un max de 30 720 octets)")
lors de l'exécution, le système plante royalement et impossible de comprendre pourquoi.
J'ai testé sur une cible arduino mega AT1280 et là tout est fonctionnel.
pouvez vous m’éclairer? je suppose un problème de mémoire, sachant que j'ai déjà fait très attention à stocker les gros volumes dans la mémoire programme avec "PROGMEM".
Parfois "void setup()" n'arrive pas à s'exécuter complètement et plante entre 2 config d'interruption.
parfois c'est dans le programme même (pas d’acquisition de la roue codeuse ou pas d'affichage ou fonctionnement incohérent.
voici le code du setup
"
void setup()
{ #if DEBUG_TO_SERIAL
Serial.begin(57600);
Serial.println("start init"); #endif
je vais mettre la partie avant le void setup pour plus de lisibilité
il se peut qu'il y est des changements car j'essais résoudre le problème.
par contre je n'arrive pas à tout mettre d'un coup à cause de la taille du fichier
pour reprendre pepe. je soupçonne fortement que la source d'erreur vient bien:
"IR_Data IR_count[10] PROGMEM;
IR_Data IR_received PROGMEM;
IR_Setting IR_config PROGMEM;"
mais je n'ai pas de retour d'erreur du compilateur.
Par contre si j'ai bien compris, je ne peux pas utiliser la mémoire programme pour stocker des variable.
Comment je peux faire pour stoker ces 3 structures sans dépassement de mémoire?
bon après une lecture de ce site (link) je comprend mieux pourquoi ça plante de manière anarchique sur mes différents tests mais aussi pourquoi cela ne fonctionne pas avec PROGMEM.
il ne me reste plus que l'eeprom.
si toute fois vous avez des solutions pour stocker un grand volume de données, je suis preneur.
Si tu nous mettais ton code en pièce jointe on y verrait plus clair. A vue de nez, au vu du morceau de code que tu montres, je n'ai pas l'impression d'un si gros volume de RAM consommée par ton application.