Poznajemy biblioteki - EEPROM, czyli dostęp do pamięci nieulotnej

Poznajemy biblioteki - EEPROM, czyli dostęp do pamięci nieulotnej

Gdy ukazały się układy AVR, społeczność elektroników uśmiechnęła się do pomysłu integracji w strukturze niewielkiej pamięci niepotrzebującej zasilania do pamiętania zawartości, która miała relatywnie długą żywotność i była oddzielnym blokiem, do którego dostęp był względnie prosty. Zresztą rozwiązania te pojawiły się jeszcze w serii 51 i wyeliminowały konieczność dołączania osobnych kostek w charakterystycznych, ośmiobitowych obudowach. Arduino Uno i pochodne mają kilobajt takiej pamięci na pokładzie.

Aby jednak skorzystać z dobra tej pamięci, potrzeba biblioteki, która – jak nakazuje logika - nazywa się EEPROM.h Biblioteka ta pozwala zapisywać pojedyncze bajty jak i zmienne oraz tablice. Wydawałoby się to – nic wielkiego, cóż skomplikowanego jest w zapisie bajtów w pamięci? A jednak w przypadku tej pamięci należy robić to dobrze. Po pierwsze, sam zapis wymaga pewnego czasu i przyspieszanie procesu może pogubić dane. O tym będzie pamiętać biblioteka. Po drugie, pamięć ta ma pewną skończoną ilość zapisów, z przedziału setki tysięcy. Zwykle to wartość abstrakcyjna, ale nietrudno byłoby napisać program, który szybko wykorzystałby limit. Biblioteka dba o równomierne zużycie obszaru bajtów, podobnie jak elektronika dysków SSD.

W programie korzystamy zwykle z dwóch instrukcji: EEPROM.put umieszcza pod wybranym adresem zmienną, a EEPROM.get pobiera ją. Zapis wielu wartości może trwać długo, jedna komórka wymaga ponad 3 ms czasu i trzeba to uwzględnić w aplikacjach. Odczyt jest już szybki. W zestawie mamy jeszcze odpowiedniki zapisu i odczytu dla bajtów, czyli write i read. Mamy też odmianę instrukcji zapisu bajtu – update, która uaktualnia tylko zmienione wartości, oszczędzając cykle i czas. EEPROM.put została już wyposażona w inteligentny sposób zapisu, bez aktualizacji treści niezmienionej. Biblioteka wystąpi wkrótce praktycznie w serii artykułów o budowie radia FM.

Powiązane tematy

Płytka edukacyjna TME-EDU-ARD-2Płytka edukacyjna TME-EDU-ARD-2Sprawdź tutaj

Przeczytaj również

Nasi partnerzy

TMETech Master EventTME EducationPoweredby
Copyright © 2025 arduino.pl