Bonjour,
en effet, tu as trop de variables définies, ou plus précisément, la somme de la taille de tes variables globales dépasse à elle seule la RAM (2048 octets) disponible.
A noter qu'il faut non seulement faire rentrer dans la RAM toutes tes variables globales, mais aussi laisser la place pour tes variables locales.
Si tu veux bien poster ton code ici, on pourra t'aider à réduire la RAM nécessaire.
Il y a plusieurs solutions :
- si tu définis des données qui ne changent jamais (constantes ou tableaux de constantes), tu peux soit utiliser "#define" (la "variable" constante est remplacée "en dur" par sa valeur avant la compilation) ou pour les tableaux de constantes les stocker dans la mémoire flash (si ton jeu nécessite de gros tableaux de constantes, par exemple une "carte", alors cette solution a elle seule suffit peut-être à résoudre ton problème
- utiliser la bonne taille de variable : par exemple "int" prends 2 octets : si tes nombres sont entre -128 et +127, tu peux utiliser int8_t à la place, qui ne prend qu'un octet ; de même, si tes nombres sont entre 0 et 255, tu peux utiliser uint8_t qui prend aussi un octet. Si jamais tu utilise beaucoup de booléens (0 ou 1), il est même possible de regrouper 8 booléens (qui de basent prennent 1 octet chacun) en un uint8_t qui prend un seul octet, mais c'est un poil plus compliqué, donc intéressant seulement si tu utilise un grand nombre d'octets.
- si jamais tu utilise des variables globales dont tu n'as besoin que dans un bout précis du code, c'est une bonne idée de les passer en variables locales, ainsi elles ne prennent la place que pendant leur durée de vie limitée : un même espace dans la RAM peut ainsi être utilisé successivement par différentes variables
- et d'autres optimisations spécifiques a ton code
Si tout ça ne suffit pas, ou si tu préfère investir de l'argent que du temps, tu peux passer à un autre micro-controleur qui a plus de RAM, par exemple une arduino Mega qui a 8ko de RAM au lieux des 2ko de l'Uno
Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...
Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.