Go Down

Topic: variable 16 bits en eeprom (Read 956 times) previous topic - next topic

fr3d

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
homemade shield and llc for multiwii-copter @ Fr3d.kazeo.com

B@tto

#1
Feb 14, 2011, 10:39 am Last Edit: Feb 14, 2011, 10:42 am by B@tto Reason: 1
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 :

Code: [Select]
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  ;)


Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

churchill

Salut,


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

Code: [Select]
#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

Go Up