EEPROM

EEPROM je druh paměti, která se nesmaže odpojením od proudu. Všechny data tak zůstanou na svém místě po restartu nebo úplném odpojení Arduina. Její velikost se liší podle použitého čipu, u Arduina Uno i Nano se jedná o 1 KB.

Paměť EEPROM má omezenou životnost. Uvádí se, že zvládne 100 000 zápisů a poté přestane fungovat. Čtení nemá na životnost vliv. Z tohoto důvodu je dobré zapisovat do ní co možná nejméně a využívat přitom funkci update. Ta nejdříve zkontroluje, zda není v paměti uložena hodnota kterou se snažíme uložit a až poté případně hodnotu zapíše, tím se předchází zbytečným zápisům. Více o funkci zde [anglicky].

Do EEPROM lze ukládat pouze 8 bitová čísla, tedy hodnoty 0 až 255. Pokud potřebujeme ukládat delší čísla, musíme je rozdělit po 8 bitech. Číslo 43690 (binárně 10101010 10101010) tak musíme uložit na dvakrát po půlkách. Toho docílíme bitovým posunem.

#include <EEPROM.h> // zpřístupnění funkcí EEPROM

int cislo = 43690;
byte prvniPulka = cislo; // tím se uloží prvních 8 bitů a zbytek se odřízne
byte druhaPulka = cislo >> 8; // přeskočí 8 bitů a až poté uloží

EEPROM.update(1, prvniPulka); // uložení první půlky do EEPROM
EEPROM.update(1, druhaPulka); // uložení druhé půlky do EEPROM

Ukázkový kód pro uložení hodnoty delší než 8 bitů – například typu int

Kompletní dokumentaci pro práci s EEPROM pamětí na Arduino naleznete v oficiální dokumentaci [anglicky].

Odpovědět..

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *