Go Down

Topic: Conserver des values quand alim débranché (Read 1 time) previous topic - next topic

KiliYaBB

Bonjour a tous,

Auriez vous une idée pour faire en sorte que lorsqu'on débranche l'arduino, puis qu'on le rebranche, les valeurs des variables produites dans le skecth avant la coupure soient conservées ?

par exemple la variable passe de 0 à 12 dans le skecth

on debranche-rebranche,

la variable n'est pas a 0 mais bien a 12.

???

D'avance merci !

RuggedCircuits


KiliYaBB

ah oui ecrire dans leprom de latmega ?
j'y avais pas pensé et je sais pas faire mais je vais explorer cette piste !

des fois, des simples réponses comme celle-ci me fait avancer d'un grand pas ! merci !!!

RuggedCircuits


KiliYaBB

Je peux lire sur le descriptif du Hardware :

The ATmega168 has 16 KB of flash memory for storing code (of which 2 KB is used for the bootloader); the ATmega328 has 32 KB, (also with 2 KB used for the bootloader). The ATmega168 has 1 KB of SRAM and 512 bytes of EEPROM (which can be read and written with the EEPROM library); the ATmega328 has 2 KB of SRAM and 1 KB of EEPROM.

Donc si je comprends bien le bootloader est chargé a chaque chargement d'un scetch ? (je pensais qu'il etait stocké pour de bon sur latmega)

SRAM et EEPROM cest quoi la difference ?
Toute la eeprom est a ma disposition alors ? je peux en faire ce que je veux ?

RuggedCircuits

Quote
Donc si je comprends bien le bootloader est chargé a chaque chargement d'un scetch ? (je pensais qu'il etait stocké pour de bon sur latmega)

Oui, le bootloader est stocké pour de bon sur l'atmega, dans le FLASH.
Quote
SRAM et EEPROM cest quoi la difference ?

SRAM ne tient pas sa valeur lorsqu'on débranche l'arduino. EEPROM tient sa valeur.
Quote
Toute la eeprom est a ma disposition alors ? je peux en faire ce que je veux ?

Oui.
(Désolé pour mon mauvais français!)

KiliYaBB

Ok, merci, le français est très bon ! ;)

Luj06

Pour Arduino, il y a une librairie de référence qui est documentée :

http://arduino.cc/en/Reference/EEPROMRead
http://arduino.cc/en/Reference/EEPROMWrite

Yapapusimple :)

KiliYaBB

Oui javais vu ca Luj06.

Et donc le bootloader est bien chargé une fois pour de bon, il ne se charge pas a chaque skecth que l'on envoie sur l'arduino ?

dans la mémoire flash, cest ca ?

Luj06

Le bootloader est en permanence dans la mémoire programme du microcontrôleur donc oui, flash.

Quand vous envoyez un "programme" avec le logiciel Arduino, il n'écrase pas la mémoire programme, il est envoyé par liaison série au bootloader qui reste le programme principal et va juste ajouter le code envoyé à la place du précédent, à sa suite. Ensuite il lance la première ligne de votre code, mais reste en place pour détecter les événements sur la liaison série afin de détecter une nouvelle séquence de téléchargement.


Go Up