Utilisation de fichiers « .cpp » et « .h »
Bonjour à tous.
Je ne parviens pas à utiliser la variable "lcd" dans le fichier "cpp" lié au fichier "monProgramme.ino" (environnement Arduino).
Nota : LiquidCrystal() est un constructeur disponible sur le web (lien).
Il est normal que le main() soit caché dans l'environnement d'Arduino !
Fichier" monProgramme.ino"
Code:
1 2 3 4 5 6 7 8 9 10 11
| #include <LiquidCrystal.h>
#include "mesFonctions.h"
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
afficheMessage(); // Dans le fichier « .cpp ».
}
void loop() {
} |
Fichier "mesFonctions.cpp"
Code:
1 2 3 4 5 6 7
| #include "mesFonctions.h"
extern LiquidCrystal lcd;
void afficheMessage(){
lcd.setCursor(0, 0);
lcd.print("Message");
} |
Fichier "mesFonctions.h"
Code:
1 2
| #include <LiquidCrystal.h>
void afficheMessage(); |
J'obtiens les erreurs suivantes :
1. lorsque je ne mets pas "extern LiquidCrystal lcd;" dans le fichier "mesFonctions.cpp"
mesFonctions.cpp: In function 'void afficheMessage()':
mesFonctions.cpp:7: error: 'lcd' was not declared in this scope
2. lorsque je mets "extern LiquidCrystal lcd;" dans le fichier "mesFonctions.cpp"
mesFonctions.cpp.o: In function `afficheMessage()':
mesFonctions.cpp:7: undefined reference to `lcd'
mesFonctions.cpp:8: undefined reference to `lcd'
Bloqué et pas moyen de trouver la solution malgré divers essais...
Qui peut trouver la solution à ce problème ?
Cordialement.