Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Precision sur les "includes"
08-08-2013, 10:26 AM, (This post was last modified: 08-08-2013, 10:27 AM by Techno.)
#1
Precision sur les "includes"
Bonjour,
J'utilise l'IDE Pinguino-X4 Rev857
Jusqu'à présent l'utilisation de l'afficheur LCD ne nécessitait pas la présence de
#include <lcdlib.c>
en début de programme de mes tutos.
J'imagine que la bonne pratique demande systématiquement de déclarer la bibliothèque lcdlib.c ?

De plus, je souhaite utiliser la commande lcd.leftToRight() et lcd.RightToLeft()
Le programme suivant se compile sans erreur :

Quote:#include <lcdlib.c>


char Caractere = 'a';

void setup() {
// initialisation des pins du LCD
//lcd.pins(RS, E, D4, D5, D6, D7, 0, 0, 0, 0) pour le mode 4bits
lcd.pins(23, 24, 28, 27, 26, 25, 0, 0, 0, 0);

//format LCD : 2 lignes et 0 pour dotsize 5x8 (1 pour dotsize 5x10)
lcd.begin(2, 0);

lcd.setCursor(0, 0); // en position 0 ligne 0
}

void loop() {

lcd.printf("%c",Caractere);

delay(500);

Caractere = Caractere +1;
lcd.leftToRight();

if (Caractere == 'p')
{
Caractere = 'a';
lcd.setCursor(0, 0); // en position 0 ligne 0
lcd.clear();

}

}

Malheureusement celui-ci indique une erreur de compilation : il ne reconnait pas le lcd.rightToLeft

Quote:#include <lcdlib.c>


char Caractere = 'a';

void setup() {
// initialisation des pins du LCD
//lcd.pins(RS, E, D4, D5, D6, D7, 0, 0, 0, 0) pour le mode 4bits
lcd.pins(23, 24, 28, 27, 26, 25, 0, 0, 0, 0);

//format LCD : 2 lignes et 0 pour dotsize 5x8 (1 pour dotsize 5x10)
lcd.begin(2, 0);

lcd.setCursor(0, 0); // en position 0 ligne 0
}

void loop() {

lcd.printf("%c",Caractere);

delay(500);

Caractere = Caractere +1;
lcd.rightToLeft();

if (Caractere == 'p')
{
Caractere = 'a';
lcd.setCursor(0, 0); // en position 0 ligne 0
lcd.clear();

}

}
Il y a surement un problème dans la librairie lcd non ?
Reply
08-08-2013, 04:46 PM,
#2
RE: Precision sur les "includes"
Bonjour,
Pour la question de #include <lcdlib.c> :
A partir du moment où tu utilises les fonctions lcd.print, etc ... l'IDE crée une ligne #include <lcdlib.c>. Voir un define.h après compilation d'un .pde dans le répertoire source et le fichier lcdlib.pdl dans le répertoire p8\pdl. Cela vaut la peine de jeter un oeil sur ces .pdl et bien sûr sur lcdlib.c.
Pour la question du lcd.rightToLeft il y a une erreur dans le lcdlib.c -ligne 302 #ifdef LCDLEFTTOLEFT au lieu de #ifdef LCDRIGHTTOLEFT-.
Je te joins un nouveau lcdlib.c pour son remplacement dans p8\pingino\librairies

(08-08-2013, 10:26 AM)Techno Wrote: Bonjour,
J'utilise l'IDE Pinguino-X4 Rev857
Jusqu'à présent l'utilisation de l'afficheur LCD ne nécessitait pas la présence de
#include <lcdlib.c>
en début de programme de mes tutos.
J'imagine que la bonne pratique demande systématiquement de déclarer la bibliothèque lcdlib.c ?

De plus, je souhaite utiliser la commande lcd.leftToRight() et lcd.RightToLeft()
Le programme suivant se compile sans erreur :

Quote:#include <lcdlib.c>


char Caractere = 'a';

void setup() {
// initialisation des pins du LCD
//lcd.pins(RS, E, D4, D5, D6, D7, 0, 0, 0, 0) pour le mode 4bits
lcd.pins(23, 24, 28, 27, 26, 25, 0, 0, 0, 0);

//format LCD : 2 lignes et 0 pour dotsize 5x8 (1 pour dotsize 5x10)
lcd.begin(2, 0);

lcd.setCursor(0, 0); // en position 0 ligne 0
}

void loop() {

lcd.printf("%c",Caractere);

delay(500);

Caractere = Caractere +1;
lcd.leftToRight();

if (Caractere == 'p')
{
Caractere = 'a';
lcd.setCursor(0, 0); // en position 0 ligne 0
lcd.clear();

}

}

Malheureusement celui-ci indique une erreur de compilation : il ne reconnait pas le lcd.rightToLeft

Quote:#include <lcdlib.c>


char Caractere = 'a';

void setup() {
// initialisation des pins du LCD
//lcd.pins(RS, E, D4, D5, D6, D7, 0, 0, 0, 0) pour le mode 4bits
lcd.pins(23, 24, 28, 27, 26, 25, 0, 0, 0, 0);

//format LCD : 2 lignes et 0 pour dotsize 5x8 (1 pour dotsize 5x10)
lcd.begin(2, 0);

lcd.setCursor(0, 0); // en position 0 ligne 0
}

void loop() {

lcd.printf("%c",Caractere);

delay(500);

Caractere = Caractere +1;
lcd.rightToLeft();

if (Caractere == 'p')
{
Caractere = 'a';
lcd.setCursor(0, 0); // en position 0 ligne 0
lcd.clear();

}

}
Il y a surement un problème dans la librairie lcd non ?


Attached Files
.c   lcdlib.c (Size: 10.33 KB / Downloads: 4)
Reply
09-08-2013, 09:27 AM,
#3
RE: Precision sur les "includes"
Bonjour gtcbreizh,

Merci de ton intérêt pour mon problème. Malheureusement, la mise à jour de la bibliothèque lcdlib.c ne résoud pas le problème...
Compilation OK avec lcd.leftToRight(); et toujours le problème avec lcd.rightToLeft();

Petite remarque : si le include lcdlib.c est implicite pour certaine commande de la bibliothèque lcdlib, je conseille de le positionner pour bénéficier de toutes les commandes de l'afficheur lcd.

Cordialement
Reply
09-08-2013, 10:28 AM,
#4
RE: Precision sur les "includes"
Salut Techno,

Si tu insères l'include lcdlib.c utilises alors les fonctions sous la forme lcd_xyz plutôt que les "alias" lcd.xyz.

As-tu vérifié que le lcdlib.c attaché avait bien été rectifié ? est-il bien dans le répertoire p8/pinguino/librairies à la place du précédent ?

Je viens à l'instant de compiler ton programmme sans pb.
pour assurance le voici.
char Caractere = 'a';

void setup() {
// initialisation des pins du LCD
//lcd.pins(RS, E, D4, D5, D6, D7, 0, 0, 0, 0) pour le mode 4bits
lcd.pins(23, 24, 28, 27, 26, 25, 0, 0, 0, 0);

//format LCD : 2 lignes et 0 pour dotsize 5x8 (1 pour dotsize 5x10)
lcd.begin(2, 0);

lcd.setCursor(0, 0); // en position 0 ligne 0
}

void loop() {

lcd.printf("%c",Caractere);

delay(500);

Caractere = Caractere +1;
lcd.rightToLeft();

if (Caractere == 'p')
{
Caractere = 'a';
lcd.setCursor(0, 0); // en position 0 ligne 0
lcd.clear();

}

}

(09-08-2013, 09:27 AM)Techno Wrote: Bonjour gtcbreizh,

Merci de ton intérêt pour mon problème. Malheureusement, la mise à jour de la bibliothèque lcdlib.c ne résoud pas le problème...
Compilation OK avec lcd.leftToRight(); et toujours le problème avec lcd.rightToLeft();

Petite remarque : si le include lcdlib.c est implicite pour certaine commande de la bibliothèque lcdlib, je conseille de le positionner pour bénéficier de toutes les commandes de l'afficheur lcd.

Cordialement
Reply
09-08-2013, 03:07 PM,
#5
RE: Precision sur les "includes"
Bon, il y a toujours le problème avec le lcd.rightToLeft...
Je pense ne pas m'être trompé en remplacant la bibliothèque cependant, je poursuis mes investigations.
Réponse (je l'espère) demain.
Reply
10-08-2013, 09:49 AM, (This post was last modified: 10-08-2013, 09:50 AM by Techno.)
#6
RE: Precision sur les "includes"
Bonjour,
Honte à moi, Je n'avais pas modifié la bonne librairie (je dispose de 2 IDE Pinguino : l'ancienne version X3 et la nouvelle X4), évidemment je me suis trompé... Confused
Merci tout fonctionne maintenant.Shy
Reply
21-12-2013, 05:23 PM,
#7
RE: Precision sur les "includes"
Bonjour à tous,
Je suis un nouveau pinguino (le micro).
Je viens d'Arduino et j'ai un pb d'includes.
Je ne sais pas inclure un module .pde, que j'ai écrit, dans mon programme .pde.
Dans Arduino IDE, c'était facile d'inclure un .ino dans un autre .ino grâce au menu <croquis>.
Dans Pinguino IDE, comment fait-on ? Merci pour votre aide.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)