variable 16 bits en eeprom

bonjour a tous, debutant(copier/coller addict) en arduino j'aurais voulu etre a meme de stocker puis lire une variable de 10 bits en eeprom donc sur deux adresse en eeprom car 2*8bits. j'aurais voulu aussi decomposé une variable de 16bits en 2 fois 8bits et inversement 2x8bits en 1 de 16bits. si qqn pouvait poster une portion de code ce serait hypersympa cordialement

Une manière de faire (non vérifiée) :

Utilise des shiftright >> et des shiftleft << pour séparer les deux paquets, ça devrait ressembler à ça :

int a = 49914 ; // en binaire : 1100001011111010 ta variable à décomposer
int b = a >> 8  ; // donc b =  000000011000010
int c = b << 8 ; // donc c = 1100001000000000
int d = a - c ;  // donc d = 0000000011111010

Il ne reste plus qu’a stocker a et d. Et pour reconstituer ta variable, il faudra faire une petite routine aussi :wink:

Salut,

fr3d:
debutant(copier/coller addict) en arduino j’aurais voulu etre a meme de stocker puis lire une variable de 10 bits en eeprom donc sur deux adresse en eeprom car 2*8bits.

Tu peux utiliser la bibliotheque standard de avrlib, en incluant eeprom.h

#include <avr/eeprom.h>
uint16_t valeur;
uint16_t EEMEM ee_ma_variable;
# Lecture
valeur = eeprom_read_word(&ee_ma_variable);
# Ecriture
eeprom_write_word(&ee_ma_variable, valeur);

A tester cependant, je l’ai utilisé en programmant directement un atmega, mais pas (encore) en passant par l’IDE de l’arduino.

churchill