Pages: [1]   Go Down
Author Topic: Librairie LCD Nokia 5110  (Read 1662 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: September 20, 2012, 12:09:50 pm by pierreyves258 » Logged

France
Offline Offline
Sr. Member
****
Karma: 2
Posts: 380
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

... ... ... J'ai mis la librairie donc le code dans le fichier .zip sur mediafire !
l'erreur est:
Code:
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 !
« Last Edit: September 18, 2012, 12:13:54 pm by pierreyves258 » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
pour la ligne 30 de ton fichier Nokia.cpp essais donc
Code:
static const byte ASCII[][5] = {

j'ai pas tester mais je crois que sa devrais aider
Logged

@+
jerome

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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 smiley
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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)
{
    // ...
}
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si je fais comme ça y me met ça...

Code:
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
« Last Edit: September 19, 2012, 08:58:17 am by pierreyves258 » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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 ?
};
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

la j'ai
Code:
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:
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 smiley avec
Code:
static byte ASCII[][5];
dans le header

et
Code:
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 smiley
Et ça marche ! smiley c'est quand même plus pratique et beau que de copier toutes les fonctions du code sur arduino.cc !

Merci smiley
« Last Edit: September 19, 2012, 10:07:17 am by pierreyves258 » Logged

Pages: [1]   Go Up
Jump to: