par contre si je place ma chaine avec un F(), la j'ai bien une économie de mémoire mais ma chaine ne correspond plus a rien et me donne :
ps����|�
je ne peux donc pas utiliser le F() et le PROGMEM ne fonctionne pas,
quelle est la bonne méthode, j'ai cherché un peu partout sur internet mais je trouve rien pour mon cas ...???
pour info, j'ai bien mis le avr/pgmspace.h au début !!
eh bien non justement, ça ne change rien de mettre ou non PROGMEM dans ma ligne !
je suis en ide 1.8.1 sur un MAC
avec :
#include <Flash.h>
#include <avr/pgmspace.h>
void setup() {
// put your setup code here, to run once:
const char test[] = {"123456789012345678901234567890"};
Serial.print(test);
}
void loop() {
// put your main code here, to run repeatedly:
}
Le croquis utilise 1382 octets (4%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 214 octets (10%) de mémoire dynamique, ce qui laisse 1834 octets pour les variables locales. Le maximum est de 2048 octets.
avec (PROGMEM en plus :
#include <Flash.h>
#include <avr/pgmspace.h>
void setup() {
// put your setup code here, to run once:
const char test[] PROGMEM = {"123456789012345678901234567890"};
Serial.print(test);
}
void loop() {
// put your main code here, to run repeatedly:
}
Le croquis utilise 1382 octets (4%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 214 octets (10%) de mémoire dynamique, ce qui laisse 1834 octets pour les variables locales. Le maximum est de 2048 octets.
ALORS QUE :
#include <Flash.h>
#include <avr/pgmspace.h>
void setup() {
// put your setup code here, to run once:
/*
const char test[] PROGMEM = {"123456789012345678901234567890"};
Serial.print(test);
*/
Serial.print(F("123456789012345678901234567890"));
}
void loop() {
// put your main code here, to run repeatedly:
}
Le croquis utilise 1354 octets (4%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 182 octets (8%) de mémoire dynamique, ce qui laisse 1866 octets pour les variables locales. Le maximum est de 2048 octets.
voilà bien mes 32 octets de gagné avec le F()
et mon PROGMEM qui n'a pas fonctionné....
je ne dois pas être loin de la solution mais je ne vois pas trop...
la je ne peux pas utiliser F() ça marche pas,
si je met PROGMEM avec ou sans static j'ai un message d'erreur
si je change pour corriger mon message d'erreur en :
static const char joursem[7][10] PROGMEM = {"Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"};
je n'ai plus d'erreur de compilation mais mes chaines ne sont plus bonnes, j'ai des séries de chiffres qui s'affichent a la place de mes jours de semaine...