Lucrul cu eeprom în AVR-GCC

Ce este EEPROM de memorie?
Cele mai multe dintre AVR de la Atmel conține EEPROM (electronic care poate fi ștearsă Read-Only Memory) - o memorie non-volatilă, cu un număr destul de mare de cicluri de scriere. Datele scrise la această memorie nu vor fi șterse chiar și atunci când alimentarea este oprită, ceea ce este foarte convenabil, de exemplu, pentru stocarea setărilor sau a unor date de identificare.
EEPROM în AVR are un număr limitat de cicluri de scriere - 100 000. Numărul de cicluri de citire nu este limitat.

Folosind biblioteca AVRLibC EEPROM
AVRLibC (de obicei, este o parte a compilator AVR-GCC) cuprinde o bibliotecă gata făcute pentru a fi utilizat cu EEPROM. Pentru a-l utiliza, trebuie să adăugați următorul fișier antet:


În această bibliotecă, trei tipuri de bază de date: octet (1 octet), cuvânt (2 octeți) și blocul de date. Noua versiune adaugă încă două tipuri - DWORD (4 octeți) și flotorul (8 octeți). Ele nu vor fi luate în considerare - de lucru cu ei este identic cu octetul \ tipuri de cuvinte. Pentru fiecare tip are propria funcție de citire și scriere. Iată-le:


Citirea octet \ cuvânt

Tip cuvânt scris și citit în același mod, cu excepția că funcțiile necesare pentru pointer la int.


Lucrări în blocuri de date în EEPROM

Aici este un exemplu de citire celor trei variabile (byte, int și bloc) din EEPROM în variabilele uzuale (SRAM):


Amintiți-vă! Dacă nu descărcați fișierul .eep, programul va lucra cu EEPROM, care a fost descărcat în momentul anterior, sau cu valori goale (0xFF). Trebuie să ofere o modalitate de a verifica EEPROM - de exemplu, verificați cunoscute valorile implicite.

articole similare