Go Down

Topic: Déclaration String en static (Read 865 times) previous topic - next topic

icare

Aug 10, 2013, 06:03 am Last Edit: Aug 10, 2013, 12:06 pm by icare Reason: 1
Bjr,
Pour contrôler le déroulement d'un programme, j'ai ajouté une fonction qui m'affiche sur un lcd l'équivalent de Serial.println.
La structure de mon programme initiale est la suivante :
Code: [Select]

String tableau[4];
//ou
//String tableau[4] = {"","","",""};
byte numLig = 0;
.....
void setup(){
 ....
}
void loop(){
 ....
 lcdPrintln("Coucou");
 delay(1000);
}
void lcdPrintln(String aAfficher){
 .....
}

Et le programme fonctionne très bien et affiche bien les lignes les unes après les autres.
Comme tableau et numLig sont uniquement utilisés dans la fonction lcdPrintln() je pensais utiliser des variables locales avec la déclaration static plutôt que des variables locales globales avec la structure ci-dessous :
Code: [Select]

//String tableau[4];
//ou
//String tableau[4] = {"","","",""};
//byte numLig = 0;
.....
void setup(){
 ....
}
void loop(){
 ....
 lcdPrintln("Coucou");
 delay(1000);
}
void lcdPrintln(String aAfficher){
 static String tableau[4];
 static byte numLig = 0;
 .....
}

La compilation ne se fait pas et j'ai le message d'erreur suivant : undefined reference to `atexit'
Malgré l'usage de google je n'ai pas trouvé de solution à mon problème. Avez-vous une idée sur les modifications à faire pour faire fonctionner le code ?
PS: static byte numLig = 0; fonctionne sans static String tableau[4];
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

skywodd

Bonjour,

Ton écran lcd à une taille en caractères connue, alors pourquoi utiliser une String pour ça ...
Un simple tableau de char et les fonctions de base strcpy(), strcat(), ... suffirait largement.

La classe String ne devrait même pas exister, c'est une saloperie sans nom !

Si tu veut régler ton problème voila la solution (attention ça picote) :
http://forum.arduino.cc/index.php?topic=73177.0
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

icare

Bjr,

Si tu veut régler ton problème voila la solution (attention ça picote) :
http://forum.arduino.cc/index.php?topic=73177.0

C'est vrai ce n'est pas de la tarte, mais j'avais déjà essayé cette solution et c'est un festival d'insultes du compilateur.
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

Go Up