Go Down

Topic: Valeur compteur stocker en eeprom (Read 4 times) previous topic - next topic

gunsman76

Bonjour a tous,

Mon petit compteur fonctionne desormais parfaitement, mais j'aimerais stocker ce compteur en mémoire eeprom lorsque j'actionne un interrupteur (interrupteur qui arrête le processus) afin de récuperer le compteur au redemarrage du processus même en cas de coupure de l'alimentation.

Une fois le redemarrage aprés coupure de l'alimentation lorsque l'arduino redémarre il irait lire la dernière valeur sauvegardé.

Je bute surtout sur l'adresse où stocker ce compteur...

Et inversement pour aller le relire...


Merci pour votre aide


lacolombenoir

Petit rappel une adresse de l'eeprom est constituer de 8 bits d'information ce qui constitue un nombre ne dépassent pas 255 donc si tu veut un compteur qui va au delà il te faudra décomposer ton nombre en plusieurs fois 8 bits pour ensuite les enregistrés, et a la prochaine lecture les ré-assembler pour obtenir le nombre que tu avais enregistré,

voici un lien qui ma beaucoup aider lors d'un projet similaire au tien http://arduino.cc/en/Reference/Bitshift.
bonne chance.
www.hatokuro.comuf.com site consacrer au rétrogaming

gunsman76

Mon nombre va augmenter de 1 jusqu'a 15 000 000 (maximum que je me suis fixé).

En gros je divise le chiffre maximum par 255 pour obtenir le nombre de bits ?


Le probleme c'est que je ne sais pasqu'elle sera la valeur du compteur a un instant T

lacolombenoir

#4
Apr 07, 2013, 12:19 am Last Edit: Apr 07, 2013, 12:22 am by lacolombenoir Reason: 1
le nombre de bit doit être fixer dé le départ en fonction du type de variable que tu souhaite manipuler

long 32 bit
int   16 bit /dans le cas de l'Arduino
char 8 bit

Dans le cadre de mon projet j'ai choisi long ( +2 147 483 647)
tu aura besoin décrire deux fonction une pour (dé-assemblage enregistrée) qui recevra ta variable et une pour (assemblage lecture) qui renverra une variable,

il va te falloir utiliser les opérateurs bitshift left et right qui serve retirée des bits ou ajouter des bits
par exemple si tu a le nombre 30 qui vaut en binaire 11110 et que tu utilise les opérateur suivant
11110<< 3 = 11110000 en décimal vaut 240
11110>> 3 = 11           en décimal vaut 3

En résumer les opérateurs te servirons a couper ta variable si tu en fais bonne usage et que tu trouve les bon calcule tu devrais obtenir des tranche de 8 bit qui une fois mi lun a coter de l'autre dans le bonne ordre recréera ta variable d'origine.

Pour les deux fonction je n'ai utiliser que l'opérateur bitshift la soustraction pour le dé-assemblage et l'addiction et l'opérateur bitshift pour l'assemblage.
www.hatokuro.comuf.com site consacrer au rétrogaming

Go Up