Mise à jour de la winterboard

Bonjour à tous,

Après avoir ressorti ma planche à leds souhaitant préparer l'event de 2023, j'ai réouvert mon INO uploadé à l'époque et qui tourne bien "en prod".

Sans avoir encore touché à quoi que ce soit dans le code en lui même mais après avoir effectué quelques mises à jour des bibliothèques, je n'arrive pas à me séparer de quelques erreurs liées à GitHub - adafruit/Adafruit_NeoMatrix: Adafruit_GFX-compatible library for NeoPixel grids

Il s'agit de l'animation visible à la 36ème : Projet snowboard arduino - YouTube qui est prévue pour enchainer plusieurs affichages de logos de DJ différents mais que je limite actuellement pour limiter l'ampleur de l'erreur.

Fonctionne en prod et fonctionnait sur IDE, j'ai installé la 2 beta pour "voir", même symptôme que sur la 1.8.19

Auriez-vous une piste ?

Merci d'avance
rico

Serait-ce lié ? Confusion caused by use of -fpermissive in AVR and megaAVR compilation recipes · Issue #10154 · arduino/Arduino · GitHub


In file included from C:\Users\ricol\Documents\Arduino\snowboard\gpxdemo.h:10:0,
                 from C:\Users\ricol\Documents\Arduino\snowboard\helper.h:7,
                 from C:\Users\ricol\Documents\Arduino\snowboard\snowboard.ino:18:
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: narrowing conversion of '12469112' from 'long int' to 'short unsigned int' inside { } [-Wnarrowing]
 };
 ^
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: narrowing conversion of '12598906' from 'long int' to 'short unsigned int' inside { } [-Wnarrowing]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: narrowing conversion of '10429523' from 'long int' to 'short unsigned int' inside { } [-Wnarrowing]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: narrowing conversion of '12664695' from 'long int' to 'short unsigned int' inside { } [-Wnarrowing]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: narrowing conversion of '10495318' from 'long int' to 'short unsigned int' inside { } [-Wnarrowing]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: narrowing conversion of '12466806' from 'long int' to 'short unsigned int' inside { } [-Wnarrowing]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: narrowing conversion of '10494288' from 'long int' to 'short unsigned int' inside { } [-Wnarrowing]
C:\Users\ricol\Documents\Arduino\snowboard\tml.h:40:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
C:\Users\ricol\Documents\Arduino\snowboard\gpxdemo.ino: In function 'void gpxloop(uint8_t)':
C:\Users\ricol\Documents\Arduino\snowboard\gpxdemo.ino:337:33: warning: default argument given for parameter 1 of 'void gpxloop(uint8_t)' [-fpermissive]
 void gpxloop(uint8_t stripno = 1) {
                                 ^
In file included from C:\Users\ricol\Documents\Arduino\snowboard\helper.h:7:0,
                 from C:\Users\ricol\Documents\Arduino\snowboard\snowboard.ino:18:
C:\Users\ricol\Documents\Arduino\snowboard\gpxdemo.h:278:6: note: previous specification in 'void gpxloop(uint8_t)' here
 void gpxloop(uint8_t stripno = 1);
      ^~~~~~~
Le croquis utilise 27942 octets (11%) de l'espace de stockage de programmes. Le maximum est de 253952 octets.
Les variables globales utilisent 3411 octets (41%) de mémoire dynamique, ce qui laisse 4781 octets pour les variables locales. Le maximum est de 8192 octets.


Il n'y a pas d'erreur, seulement des warnings. Ca n'empêche pas le code de fonctionner (sauf erreur de ma part). Peut-être as-tu changé les paramètres de verbosité du compilateur ?

Merci pour ta réponse @lesept.
Disons que j'ai eu peur d'écraser ce qui tourne et de planter la planche.
Il n'est pas possible à ma connaissance de faire un backup ce qui est sur la board, je n'ai donc pas tenté de téléverser avant d'avoir tout propre.
Le fait est que j'avais aucun warning par le passé d'où l'inquiétude mais je m'inquiète peut être pour rien en fait.

Mais il est vrai que j'ai chipoté aux cases à cocher dans les settings en cherchant naivement une option de récupérer le programme afin de repartir de cela pour mes modifs à venir.
J'y retourne du coup, merci de la piste

Un warning est une erreur potentielle, surtout si on ne comprend la raisons de ce warning.
Dans la mesure du possible, il est recommander de résoudre les warnings et du coup de les laisser uniquement en connaissance de cause.

C'est bien mon problème, je ne la comprend pas et ne l'avait pas

Le warning, t'avertis que tu essaye de mettre un entier pouvant aller de -2 147 483 648 à 2 147 483 647 dans un entier(variable ou paramètre) pouvant aller de 0 à 65535
A priori tu manipule des constante puisqu'il t'indique la valeur que tu va tronquer.

Pour le deuxième type, je n'y suis pas très habitué, mais il te dis que tu ne peux pas déclarer une valeur par défaut d'un argument dans l'implémentation de ta fonction, mais que tu dois utiliser une définition de ta fonction pour cela.

Après pourquoi cela arrive, il y a plusieurs possibilité, tu as monter le niveau de sévérité des warning, ce qui est une très bonne chose :slight_smile:
Tu as fait une mise à jour de l'IDE de l'arduino ou du compilateur et ils ont changés la sévérité des warning.
Il y a surement aussi d'autre possibilité que je ne connais pas :smiley:

Merci encore pour cette analyse @terwal.
Pour la faire courte et vu que je n'avais rien fait comme changement,
Instal de l'IDE sur un autre PC.
Achat d'un Mega (backup) sur lequel j'ai poussé le programme original
J'ai remonté tout sur le nouveau mega,
0 erreur, tout fonctionne...
Depuis, j'ai pu repousser le programme vers l'ancien aussi via le PC2.

Mon mega de départ est un Elegoo, j'ai un Whadda désormais.

Prochaines étapes :

  • Des nouveaux logo bmp
  • Un circuit imprimé
  • Un montage propre dans une boite adhoc, le tout vissé en tentant de reproduire un principe de silent bloc et ainsi tenter d'absorber les chocs.

La commande est passée !

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.