[RESOLU] stockage en eeprom et lecture dans une chaine

bonjour,
je souhaite ecrire en eeprom un numero de telephone qui me servira pour un appel gsm.
je stocke actuellement ex : 632568949, un chiffre par pas le 6 pas 1, le 3 pas 2 etc
avec une boucle for(i) je les relis et je les affiche bien dans le moniteur serie.
mon soucis, n'etant pas pro du C, est de mettre ce numero complet apres lecture eeprom dans une variable
ex: Num_tel = "632568949";
pouvez vous m'aider
merci a tous

Quand tu les lis mets les dans un tableau de type char au passage et ce sera une chaine, en ajoutant à la fin le caractère '\0'.
Tu peux le mettre dans ta boucle for justement: num_tel [i] = caractère_en_cour_de_lecture;

En EEPROM tu stockes des chiffres ou des caractères?

Si tu stockes des caractères il suffit de faire comme l'indique john_lenfr
Si tu stockes des chiffres en EEPROM il faut d'abord les "convertir" en caractères avant de construire la chaîne.
L'exemple de john_lenfr

num_tel [i] = caractère_en_cour_de_lecture;

devient

num_tel [i] = caractère_en_cour_de_lecture + '0;

'0 est le code ASCII qui représente le chiffre 0. Cela permet de transformer un chiffre en caractère numérique.

grosmatou2:
bonjour,
je souhaite ecrire en eeprom un numero de telephone qui me servira pour un appel gsm.
je stocke actuellement ex : 632568949, un chiffre par pas le 6 pas 1, le 3 pas 2 etc
avec une boucle for(i) je les relis et je les affiche bien dans le moniteur serie.
mon soucis, n'etant pas pro du C, est de mettre ce numero complet apres lecture eeprom dans une variable
ex: Num_tel = "632568949";
pouvez vous m'aider
merci a tous

Tu peux aussi les traiter comme des unsigned long (32 bits) pour stocker tes numéros dans "une seule variables".
Mais à ce moment la il faudra manipuler les rotations binaires ( ex : >> ou << ) pour enregistrer octets par octets les numéros dans l'eeprom. Et inversement pour récupérer la données.

http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html

Arduino n'a pas retenu toutes les possibilités offertes par l'avr-libc.

68tjs:
avr-libc: <avr/eeprom.h>: EEPROM handling

Arduino n'a pas retenu toutes les possibilités offertes par l'avr-libc.

Ce n'est pas intégré dans le Lib EEPROM d'Arduino mais avec quelques rotations on arrive facilement à ecrire/lire du int en EEPROM. Et avec du int on peut facilement ecrire/lire du long en eeprom (faut juste pas se tromper dans les adresses).

Ce n'est pas intégré dans le Lib EEPROM d'Arduino

Oui c'est évident mais ce n'est pas parce que arduino/wiring ne l'a pas intégré qu'il est interdit de s'en servir.

Au passge aller encore une fois le travail énorme du projet Wiring :

uint8_t EEPROMClass::read(int address)
{
return eeprom_read_byte((unsigned char *) address); // --> fonction de l'avr-libc
}

void EEPROMClass::write(int address, uint8_t value)
{
eeprom_write_byte((unsigned char *) address, value);// --> fonction de l'avr-libc
}

EEPROMClass EEPROM;

Ca sert juste à dispenser l'utilisateur d'utiliser un pointeur, bon d'accord un pointeur pour un débutant (et même pour un plus trop débutant) c'est pénible.