Petit code EEPROM mais "Variable was not declared in this scope"

Bonjour,

Lorsqu'un réseau de neurones est entrainé, il faut sauvegarder tous ses synapses.
Moins de 20 neurones tournent sur un Arduino Uno.
Il est judicieux de les sauvegarder en EEPROM pour les recharger ultérieurement, avec un autre code, pour que le réseau ne repasse pas par la case "apprentissage".

Le code est le suivant, et la compilation se termine invariablement par (et c'est la seule erreur pour le moment):
'poidsSynatiques' was not declared in this scope

*indexPoids est un pointeur.

Je ne comprends pas d'où viens l'erreur, ceci étant du au fait que je ne programme que depuis peu.

Merci infiniment pour votre aide.
PS: je parle de neurones car j'ai été fasciné par le fait qu'un Uno puisse servir de base.
Voir le code Arduino_ANN sur le net.

=============================================

#include <math.h>
#include <EEPROM.h>

void setup(){

int adresse = 0;
int *indexPoids = 0 ;
int nombrePoids = 88 ;

float poidsSynaptiques[] =

{ 0.105031, 0.525037, 0.765037, 0.615037, 0.335031, 0.755037, -0.060000, 0.096491,
-0.043509, 0.266491, 0.516490, 0.786489, 0.286491, 0.370000, -0.074938, -0.054938,
0.055062, -0.224938, -0.314939, 0.345061, -0.410000, 0.223306, -0.046695, 0.613304,
0.403305, -0.216695, -0.026694, 0.470000, -0.024486, 0.525517, -0.044486, 0.185514,
0.645517, 0.345514, 0.290000, 0.513614, 0.563613, 0.773613, 0.203620, 0.693613,
0.293619, -0.220000, 0.424081, 0.054080, -0.505919, 0.014080, -0.435920, -0.075920,
0.180000, -0.246358, 0.473641, -0.186359, -0.456359, -0.266359, 0.173641, -0.010000,
-1.505369, -0.612070, -0.157404, -1.167573, -0.853112, -1.449506, -0.198401, -0.122940,
-1.484937, -0.516042, -0.827041, -0.726678, -0.796559, -1.716870, -0.620693, -0.858856,
-1.233749, -1.106184, -0.760454, -0.337654, -1.057277, -1.804930, -0.732942, 0.013385,
-1.290705, -1.107868, -0.108362, -0.712151, -0.488984, -1.599269, -0.781859, -0.539781 };

/******************************************************************

  • Poids Synaptiques à sauvegarder
    ******************************************************************/

for (indexPoids=0; *indexPoids<nombrePoids; *indexPoids++);
{
EEPROM.put( adresse , poidsSynatiques [*indexPoids]);
adresse += sizeof(poidsSynatiques[*indexPoids]);
}
}

void loop(){

}

Bonjour

Tu as défini poidsSynaptiques et tu essaies d'accéder à poidsSynatiques

Je pense qu'il y a une embrouille avec indexPoids.
Pourquoi est-ce un pointeur?

Purée !

Je venais de prendre un rendez-vous avec mon ophtalmo ce matin, et je ne pensais pas que c'était à ce point urgent ......

J'utilise un pointeur pour me déplacer dans le tableau de valeurs de type float.
Mais peut-être n'est ce pas la méthode la plus simple ?
Je vais continuer ce code et voir si je peux relire l'EEPROM.

Bonne soirée et merci !

De la manière dont tu code, indexPoids n'as pas besoin d'être un pointeur.

Bonjour pepe,

Bien trouvée la méthode pour écrire/lire un tableau

Vraiment super les conseils !

Un grand merci à tous !