Page 2 sur 3
Re: Une histoire à dormir debout
Posté : 08 août 2025, 20:36
par C2Vues-BricoTrain
Re: Une histoire à dormir debout
Posté : 08 août 2025, 20:42
par likiki
Re: Une histoire à dormir debout
Posté : 08 août 2025, 22:49
par patrice_b
A la poubelle le mega, j'en prendrais un neuf.

Re: Une histoire à dormir debout
Posté : 08 août 2025, 23:39
par ramasoft
Bah non, c'est juste l'EPROM qui déconne, le reste doit fonctionner correctement et peut servir à un projet qui n’utilise pas de stockage de valeurs en EPROM
Re: Une histoire à dormir debout
Posté : 11 août 2025, 16:09
par herwat
Bon . . . .
Après de multiples essais, j'y perd mon latin .
Les fonctions eeprom.read et eeprom.write semblent fonctionner sans problème .
Par contre, pour les fonction eeprom.get et eeprom.put , c'est autre chose ! ! !
à certaines adresses, ça fonctionne sans problème, mais pas à d'autres . . . . vraiment bizarre !
Et ce, quelque soit l'arduino utilisé .
Je lâche l'affaire .
Pour la mise en mémoire des positions de l'APT je vais donc utiliser une SDCard . Mais c'est beaucoup moins simple d'utilisation . . .
Mais pas le choix .
Re: Une histoire à dormir debout
Posté : 11 août 2025, 16:42
par likiki
Re: Une histoire à dormir debout
Posté : 11 août 2025, 16:44
par ramasoft
C'est quand même bizarre si ça le fait sur plusieurs cartes Arduino.
Ça voudrait dire qu'Il y a peut-être un bug dans le bibliothèque EEPROM.
J'ai cru voir que tu mettais l'adresse et la position directement en valeur : EEPROM.put(10, 12000); EEPROM.put(20, 24000) ; etc...
Il est possible que EEPROM réagisse mal quand on lui passe les paramètres par valeur
Tu pourrais essayer de passer l'adresse par une variable et de mettre les positions dans un tableau à deux dimensions ou si ça ne marche pas dans deux tableaux à une dimension et écrire les tableaux en bloc : EEPROM.put(EEPROM_DATA_ADDR, tableauPositions);
J'ai jeté un œil dans EEPROM.h et elle utilise des uint8_t , donc si tu passe par valeur avec un nombre sur 2 octets le compilateur peut ne passer qu'un seul octet alors que si tu passes une variable, le compilateur sait combien d'octets elle occupe et traduit en conséquence.
Ça peut être une piste ...
Re: Une histoire à dormir debout
Posté : 11 août 2025, 16:48
par C2Vues-BricoTrain
herwat a écrit : 11 août 2025, 16:09
Bon . . . .
Après de multiples essais, j'y perd mon latin .
Par contre, pour les fonction eeprom.get et eeprom.put , c'est autre chose ! ! !
à certaines adresses, ça fonctionne sans problème, mais pas à d'autres . . . . vraiment bizarre !
Je lâche l'affaire .
Voilà qu'Hervé observe certaines adresses, fait le "GET" (guet) et les "PUT" (putes), on aura tout vu !

Re: Une histoire à dormir debout
Posté : 11 août 2025, 16:50
par ramasoft
D'ici à avoir une réputation de proxénète ...

Re: Une histoire à dormir debout
Posté : 11 août 2025, 16:53
par likiki
ramasoft a écrit : 11 août 2025, 16:44
J'ai cru voir que tu mettais l'adresse et la position directement en valeur : EEPROM.put(10, 12000); EEPROM.put(20, 24000) ; etc...
C'est aussi ce que je fait et j'utilise aussi une variable dans le cas des réglages fin. EEPROM.put(10, Position);
Par contre, Patrick a peut être mis le doigt dessus en parlant de la bibliothèque EEPROM.
La supprimer et la réinstaller pourrait faire disparaitre le probléme.

Re: Une histoire à dormir debout
Posté : 11 août 2025, 16:58
par C2Vues-BricoTrain
ramasoft a écrit : 11 août 2025, 16:50
D'ici à avoir une réputation de proxénète ...
A force de s'occuper des "matrices" et des "bits", à une lettre près, on est pas loin !
Et en plus avec les positions sur du "Hard, Oui/No", je vous laisse imaginer la chose...
Re: Une histoire à dormir debout
Posté : 11 août 2025, 17:00
par herwat
C'est vrai que pour la lecture je passe par variables, mais pas pour l'écriture ! tiens tiens ! ! !
Je vais essayer ça de suite .
Re: Une histoire à dormir debout
Posté : 11 août 2025, 17:16
par herwat
Voilà mon programme d'écriture :
Code : Tout sélectionner
#include <EEPROM.h>
unsigned long Hauteur[11] = {48000,0,12000,24000,36000,48000,
0,12000,24000,36000,48000} ;
int Add ;
int i ;
void setup()
{
EEPROM.write(20, 0);
for (i=0 ; i <= 10 ; i++)
{
Add= 40+10*i ;
EEPROM.get(40+10*i,Hauteur[i]) ;
}
}
void loop()
{
Et voilà le résultat :
.
Ecran04.JPG
.
En fait, j'obtiens le même résultat .

Re: Une histoire à dormir debout
Posté : 11 août 2025, 17:30
par herwat
Dans ma précipitation, j'ai écrit n'importe quoi .
Voilà le bon programme :
.
Code : Tout sélectionner
#include <EEPROM.h>
unsigned long Hauteur[11] = {48000,0,12000,24000,36000,48000,
0,12000,24000,36000,48000} ;
int Add ;
int i ;
void setup()
{
EEPROM.write(20, 0);
for (i=0 ; i <= 10 ; i++)
{
Add= 40+10*i ;
EEPROM.put(Add,Hauteur[i]) ;
}
}
void loop()
{
]
Et voilà le résultat :
.
Ecran05.JPG
.
Patrick, tu es un dieu !

Re: Une histoire à dormir debout
Posté : 11 août 2025, 17:34
par ramasoft
Quand même pas

Re: Une histoire à dormir debout
Posté : 11 août 2025, 17:37
par herwat
Re: Une histoire à dormir debout
Posté : 11 août 2025, 18:40
par ramasoft
Même au niveau des fonctions, il faut éviter de passer les paramètres directement "en dur" car ça peut engendrer des comportements inattendus selon les plateformes.
Sauf si la variable attendue est un entier non signé sur un seul octet, là on peut mettre une valeur en nombre sans risque.
Re: Une histoire à dormir debout
Posté : 11 août 2025, 22:50
par patrice_b
Bien joué Patrick.
Les pièges des variables et fonctions. Pas évident...
Tu vas pouvoir arrêter de te casser la tête Hervé ouf !

Re: Une histoire à dormir debout
Posté : 12 août 2025, 09:08
par Sylver35
Hello,
Attention, quand on a le nez dedans trop longtemps, on ne voit plus les erreurs d'écriture simples :
Je n'ai jamais mis mon nez dans cela mais ce codage est très similaires à php, javascript et jQuery.
Re: Une histoire à dormir debout
Posté : 12 août 2025, 10:01
par ramasoft
Beaucoup de langages se ressemblent et quand on en maîtrise un et qu'on a les bons automatismes de base il est facile de passer à un autre langage avec juste quelques nouveautés à assimiler. Du moins tant qu'on reste dans du code à visée générale.
Re: Une histoire à dormir debout
Posté : 12 août 2025, 11:14
par herwat
Re: Une histoire à dormir debout
Posté : 12 août 2025, 11:27
par likiki
Dans ton code tu n'a pas mis une " } " accolade a la fin du loop mais un crochet.

Re: Une histoire à dormir debout
Posté : 12 août 2025, 12:55
par herwat
Oui, j'ai vu ça, après .
ça a du se faire lors du transfert sur le forum . Sinon lors du téléversement, le compilateur aurait vigoureusement protester !

Re: Une histoire à dormir debout
Posté : 12 août 2025, 13:37
par likiki

Faut pas con fondre le con pilateur avec un con sommable

Re: Une histoire à dormir debout
Posté : 12 août 2025, 14:00
par herwat