Go Down

Topic: Librairie LCD Nokia 5110 (Read 1 time) previous topic - next topic

Sep 17, 2012, 10:33 pm Last Edit: Sep 20, 2012, 07:09 pm by pierreyves258 Reason: 1
Bonjour, j'ai voulu créer une librairie pour l'IDE arduino 022 pour utiliser facilement l'ecran LCD Nokia 5110.
En prenant le code officiel et en faisant une librairie j'ai fais ça: http://www.mediafire.com/?i3ab4ebmaor68kv

Mon problème c'est que je n'arrive pas a créer le tableau ASCII, il y a toujours une erreur quand je compile...
savez vous d'ou cela peut venir et comment le corriger ?

EDIT:

Librairie terminée:
https://github.com/pierreyves258/Nokia-5110

Grag38

Si tu ne donnes pas le code, et surtout si tu ne nous dis pas les erreurs affichées, c'est difficile de t'aider.

As tu placé cette librairy dans le bon répertoire ?

Sinon il y a une librairie compatible il me semble avec ton ecran sur ce tuto :

http://www.arduino.cc/playground/Code/PCD8544


#2
Sep 18, 2012, 05:45 pm Last Edit: Sep 18, 2012, 07:13 pm by pierreyves258 Reason: 1
... ... ... J'ai mis la librairie donc le code dans le fichier .zip sur mediafire !
l'erreur est:
Code: [Select]

C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp: In constructor 'Nokia::Nokia(int, int, int, int, int)':
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp:31: error: expected primary-expression before '{' token
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp:31: error: expected `;' before '{' token
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp:196: error: expected `}' at end of input


C'est justement a partir de ce code (qui n'est pas une librairie !) que j'ai fait ma librairie !

jblb

Bonjour,
pour la ligne 30 de ton fichier Nokia.cpp essais donc
Code: [Select]

static const byte ASCII[][5] = {


j'ai pas tester mais je crois que sa devrais aider
@+
jerome

Mais la déclaration dans le .h ne suffit pas normalement ?

Et bien plus d'erreur durant l'initialisation du tableau mais ASCII est introuvable ...

Code: [Select]
N5110\Nokia.cpp.o: In function `Nokia::writechar(char)':
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110/Nokia.cpp:156: undefined reference to `Nokia::ASCII'
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110/Nokia.cpp:156: undefined reference to `Nokia::ASCII'
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110/Nokia.cpp:157: undefined reference to `Nokia::ASCII'
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110/Nokia.cpp:157: undefined reference to `Nokia::ASCII'


Il y a bien moyen de mettre ASCII dans la fonction (c'est la seule a l'utiliser) mais ça va être moche et lourd ...

Merci de ton aide :)

SesechXP

Salut,

La déclaration dans le fichier d'entête est bonne. C'est la définition dans le constructeur qui pose problème. Il faut la sortir et la placer avant :

Code: [Select]
byte Nokia::ASCII[][5] = {
{0x00, 0x00, 0x00, 0x00, 0x00} // 20  
,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
// ...
,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ?
,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f ?
};

Nokia::Nokia(int SCLK,int SDIN, int DC, int RESET, int SCE)
{
    // ...
}
Julien - www.idreammicro.com

#6
Sep 19, 2012, 03:54 pm Last Edit: Sep 19, 2012, 03:58 pm by pierreyves258 Reason: 1
Si je fais comme ça y me met ça...

Code: [Select]

C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp:9: error: conflicting declaration 'byte Nokia::ASCII [][5]'
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\/Nokia.h:37: error: 'Nokia::ASCII' has a previous declaration as 'const byte Nokia::ASCII [][5]'
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp:9: error: declaration of 'const byte Nokia::ASCII [][5]' outside of class is not definition

SesechXP

Ah tu as rajouté des choses par rapport à ton premier message, notamment le mot clé const...

Deux solutions :
1- tu enlèves le mot clé const ;
2- tu retires la déclaration de ton fichier d'entête et dans le fichier source :
Code: [Select]
static const byte ASCII[][5] = {
{0x00, 0x00, 0x00, 0x00, 0x00} // 20 
,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
// ...
,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ?
,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f ?
};
Julien - www.idreammicro.com

#8
Sep 19, 2012, 04:54 pm Last Edit: Sep 19, 2012, 05:07 pm by pierreyves258 Reason: 1
la j'ai
Code: [Select]
static const byte ASCII[][5] = {
{0x00, 0x00, 0x00, 0x00, 0x00} // 20  
,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
// ...
,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ?
,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f ?
};
dans la cpp avant le constructeur Nokia::Nokia.

Et rien dans le header.

Mais ces erreurs
Code: [Select]
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp:9: error: 'static' may not be used when defining (as opposed to declaring) a static data member
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp:9: error: 'const byte Nokia::ASCII [][5]' is not a static member of 'class Nokia'
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp: In member function 'void Nokia::writechar(char)':
C:\Users\pierre-yves\Desktop\arduino-0022\libraries\N5110\Nokia.cpp:161: error: 'ASCII' was not declared in this scope


ça m'enerve, je comprend pas le probleme

EDIT:
Ah :) avec
Code: [Select]
static byte ASCII[][5];
dans le header

et
Code: [Select]
byte Nokia::ASCII[][5] = {
{0x00, 0x00, 0x00, 0x00, 0x00} // 20  
,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
...
,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ?
,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f ?
};

avant le constructeur dans le cpp:
ça compile :)
Et ça marche ! :) c'est quand même plus pratique et beau que de copier toutes les fonctions du code sur arduino.cc !

Merci :)

Go Up