pour initialiser un tableau en flash, je tente d'utiliser la directive PROGMEM
// préinitialisation à 0
const uint16_t coled[14] PROGMEM = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
uint8_t c = 0;
void setup() {
Serial.begin(57600);
while (!Serial); // wait for serial port to connect. Needed for native USB
}
void loop() {
delay(1000);
Serial.print(c);
Serial.print("->");
Serial.println(coled[c]);
c++;
if (c == 14) c = 0;
}
Chez moi aussi ça fait la même chose (mais pas les mêmes valeurs)
print ne fait pas la conversion pour les tableaux de valeurs PROGMEM contrairement aux chaines de caractères.
il faut utiliser
à le cron ... c'est quand on s'arrête à la moitié de la lecture de la référence ...
bonjour Kamil et merci ! (karma++;)
alors tant que j'y suis j'ai un autre souci,
en fait, le tableau a 96 éléments (bonne raison pour qu'il ne traîne pas en ram)
je peux aussi pré initialiser comme ça :
const uint16_t coled[96] PROGMEM = {0};
les 96 mots sont bien relus comme étant à la valeur 0
le souci, c'est que bien entendu, une quarantaine d'éléments doivent être initialisés une autre valeur, et je ne vois pas comment modifier ça par la suite
on peut naïvement essayer :
coled[25] = 999; ça ne marche pas, ce n'est pas comme si on était en ram
ça parait malheureusement logique,
je vais donc me cogner l'écriture du méga tableau et en + endurer les sévices que le formatage automatique lui fera subir ...