memorie EEPROM (PROM) în avr

Trebuie remarcat faptul că unii producători combină tipul de memorie EEPROM cu SRAM. La terminarea conținutului memoriei de tensiune de operare transferate de la SRAM la EEPROM, prin care se realizează înregistrarea ciclu scurt nu duc la uzură.

Cartea Evstifeeva, directorul de microcontrolere (literatură am citat într-un articol №1), descrie exemplele de programe de citire / scriere. Să ne uităm la program:

Punerea în aplicare a funcțiilor de înregistrare:

Biți EECR registru de control:
Straniu - rezoluție de întrerupere EEPROM;
EEMWE - Gestionarea permisiunii de scriere EEPROM;
EEWE - rezoluția de înregistrare în EEPROM;
EERE - citit rezoluția din EEPROM.

3. Încărcați date octet de date în registru EEDR.
4. EEMWE - control rezoluție de înregistrare de descărcare în EEPROM. Acest pavilion este responsabil pentru înregistrarea EEWE de descărcare razrresheniya. Atunci când este instalat în 1zapis permisă dacă 0, atunci când instalați EEWE 1 intrare în memorie nu se va întâmpla. După instalarea software-ului EEMWE resetat după 4 cicluri de mașină.
5. Scrieți datele în memorie.

Există o singură nuanță. Dacă aveți de gând să scrie periodic date EEPROM în timpul programului, cu auto-programare microcontroler, este necesar să se știe că înregistrarea în EEPROM nu poate fi realizată simultan cu scrierea în memoria flash. astfel încât după primul paragraf de mai sus, trebuie să adăugați următorul paragraf:

- așteptați finalizarea înregistrării în Flash-memorie Activități Programe, și anume așteptați până când sbprositsya pavilion SPMEN SPMCR registru, apoi, după acea linie trebuie să adăugați una mai multe condiții ciclice:

în timp ce (SPMCR (1<

Acum, analiza funcției de citire:

Dar, înainte de a utiliza algoritmul de înregistrare sau de citire EEPROM, trebuie să declare o variabilă care va fi distribuit în zona EEPROM. Pentru a face acest lucru în biblioteca eeprom.h atribut mediu software WinAVR personalizat definit EEMEM. De exemplu, beznakovogo declara un atribut de tip întreg variabil.

EEMEM uint8_t eeprom_h; // declara o variabilă.
x este o variabilă;
uint8_t - beznakovy tip întreg având exact bitul specificat, în acest caz, 8 biți și este proiectat pentru portabilitate.
EEMEM - atribut care cauzează variabila care urmează să fie distribuite în cadrul secțiunii .eeprom. Acest atribut este definit în eeprom.h fișier și se pare, după cum urmează.

#ifndef EEMEM
#define EEMEM__attribute__ ((secțiunea ( «.eeprom»)))
# endif

Ei bine, totul mestecate program exemplu, în cele din urmă ca un întreg. Dăm datele EEPROM și cred.

#include
#include
#include
#include «lcd.h»

figura Nizhena arată rezultatul
Codul de mai sus este luat dintr-un articol №4, care se introduce în liniile de mai sus.
În cazul în care programul a fost transmis inițial constante kakieto pentru depozitare în EEPROM, atunci firmware-ul este necesar pentru a umple un fișier cu extensia .eep, care va fi creat kompilyatoorom și plasate în același director, și fișiere.

Asta e tot pentru. Aici este o imagine de ansamblu a lucra cu această memorie. Desigur, există o mulțime de nuanțe, dar este subțire. Articolul următor va examina PWM (puls-lățime-modulare imulsnymi) și trece pentru a încerca să proiecteze sleduyuschimu construi „creierul“ CNC pentru mașini-unelte pentru hobby-ul fără probleme. Pa toată lumea.

articole similare