Auteur Sujet: Erreur de compilation - sketch de l'article "Ma nouvelle manette DCC avec ESP32"  (Lu 1346 fois)

Jean-Baptiste

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
Bonjour,

Lors de la compilation du sketch attaché à l'article "Ma nouvelle manette DCC avec ESP32" (https://locoduino.org/spip.php?article343), j'ai l'erreur suivante bloquante :
Compilation error: 'UP' was not declared in this scope; did you mean 'UDP'?.

C'est visiblement lié à la ligne 733 du fichier S_dials18.ino : ESP32Encoder::useInternalWeakPullResistors=UP;.
Qu'est ce qui ne va pas ? Est-ce qu'une bibliothèque est manquante ?
Merci d'avance

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3137
  • 100% Arduino et N
    • Voir le profil
Bonjour Jean-Baptiste,

Comme trop souvent, avec si peu d'informations, il est difficile de t'aider.
L'auteur du programme nous ayant quitté l'année dernière, il ne pourra pas te répondre directement et il faudra te lancer dans une recherche personnelle.

Est-ce dans l'IDE ARDUINO ?

Commences par sortir le texte complet de l'erreur de compilation et identifies dans quel coin ça se produit.

"'UP' was not declared in this scope" : c'est une cas en général facile : est-ce que "UP" existe quelque part dans les fichiers ? (outil de recherche dans l'IDE Arduino ) ?
Sinon c'est une erreur de frappe quelque part
Si oui c'est une #include qui manque quelque part.

C'est juste une ébauche de recherche, continues et reviens vers nous en cas d'échec.

En général quand on cherche, on trouve souvent ...
Cordialement,
Dominique

Jean-Baptiste

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
Bonjour,

Merci pour ta réponse.
J'ai bien vu que msport est malheureusement décédé, ses contributions m'intéressaient beaucoup.
L'erreur apparaît dans l'IDE version 2.3.4.
Il s'agit du fichier *.ino indiqué dans l'article : https://locoduino.org/IMG/zip/s_dials-18.zip
Le problème est à la ligne 733 avec ce message d'erreur :
C:\Users\jb\Downloads\s_dials-18\S_dials-18\S_dials-18.ino: In function 'void setup()':
C:\Users\jb\Downloads\s_dials-18\S_dials-18\S_dials-18.ino:733:46: error: 'UP' was not declared in this scope; did you mean 'UDP'?
  733 |   ESP32Encoder::useInternalWeakPullResistors=UP;
      |                                              ^~
      |                                              UDP
exit status 1
Compilation error: 'UP' was not declared in this scope; did you mean 'UDP'?

Il y a probablement un problème lié à la bibliothèque "ESP32Encoder.h"(https://github.com/madhephaestus/ESP32Encoder), mais je suis désolé, j'ai toujours été nul en programmation.
Comment savoir si les lignes #include <driver/gpio.h> et #include <driver/pcnt.h> de la bibliothèque sont bien trouvées par l'IDE ?
C'est d'autant plus regrettable que j'ai tout le hardware qui semble fonctionner.
« Modifié: mars 17, 2025, 09:33:36 pm par Jean-Baptiste »

Jean-Baptiste

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
Je viens de changer le code de cette ligne par ceci :
ESP32Encoder::useInternalWeakPullResistors= puType::up;
Dans la bibliothèque, il spécifié ceci :
enum class puType {
   up,
   down,
   none
};...
static puType useInternalWeakPullResistors;

Est-ce que ma modification est pertinente ? Je n'ai plus d'erreur de compilation.
Merci

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3137
  • 100% Arduino et N
    • Voir le profil
Je n’ai pas le temps nécessaire pour étudier ce problème en ce moment.

Après téléchargement, que se passe-t-il ?
Cordialement,
Dominique

Jean-Baptiste

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
Je n’ai pas le temps nécessaire pour étudier ce problème en ce moment.

Après téléchargement, que se passe-t-il ?
Pour l'instant, pas grand chose sur l'écran qui m'a affiché quelques images fixes.
Je pense que c'est un autre problème, il faut que je vérifie le cablage et les contacts, voir que je commande un autre écran pour test.
Sujet en attente, donc.

Jean-Baptiste

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
Bonjour,
Après attente de livraison des composants Ali..., je suis arrivé à une télécommande qui semble totalement fonctionnelle !

J'ai dû modifier l'ordre des pins pour avoir un encodeur qui fonctionne dans le bon sens et un peu jouer au loto concernant les options du fichier User_Setup.h de la librairie TFT_eSPI-master.

Je n'ai pas encore testé sur la station DCC-EX, mais je ne vois pas de raison pour laquelle ça ne fonctionnerait pas.
Reste juste cette étape : "Il ne reste plus qu’à créer un boitier adapté en impression 3D."
Merci
« Modifié: avril 01, 2025, 02:44:22 pm par Jean-Baptiste »