GESTIRE LA MEMORIA EEPROM



La memoria EEPROM permette di memorizzare delle byte in modo non volatile. Gli indirizzi disponibili per questa area di memoria sono 256 (0 a 255). La procedura sintatticamente corretta è la seguente :



// prototipo della libreria per scrivere su eeprom




.

.

.

.

.

//usare libreria per scrivere su eeprom



EEPROM_write (indirizzo, dato);





nota – mi raccomando di dichiarare le variabili prima di usarle.







// prototipo della libreria per scrivere su eeprom


.

.

unsigned short lettura; // dichiariamo “lettura” come variabile per caricare il valore delle celle.

.

.

//usare libreria per scrivere su eeprom

lettura = EEPROM_read (indirizzo); //memorizza nella variabile lettura il contenuto della cella

quindi il programma si presenta così :



// prototipi delle funzioni

unsigned short Eeprom_Read (unsigned int);

void Eeprom_write (unsigned int, unsigned int);

.

.

.

// routine lettura Eeprom

char var; // variabile che contiene l'indirizzo da leggere

char var1; // variabile in cui caricare il contenuto dell'indirizzo puntato

.

.

var1 = Eeprom_Read (var); // assegna il contenuto dell'indirizzo var alla variabile var1

.

.

.

// routine scrittura EEPROM

.

.

char var3, var4; //variabili che contengono il valore e l'indirizzo per la scrittura

.

.

var3 = valore;

var4 = indirizzo;

.

.

Eeprom_Write (var4, var3); // scrive all'indirizzo var4 il dato var3

.

.

Ovviamente, al posto delle variabili, posso inserire direttamente i valori se questi non devono cambiare. Durante l'esecuzione della funzione di scrittura, le interruzioni vengono disattivate (GIE=0). Vengono riattivate automaticamente dopo l'uscita dalla funzione di scrittura. Successivamente a una scrittura, devo attendere 20 ms prima di avviare un altro processo di scrittura.