iot

Molti dei dispositivi che comunemente usiamo hanno la capacità di ricordare la situazione in cui si trovavano prima dello spegnimento in modo da riproporla all'accensione, oppure hanno la capacità di ricordare particolari impostazioni dell'utente in modo da non doverle inserire tutte le volte che il dispositivo viene avviato.

Nei PIC un modo economico di realizzare queste funzioni è quello di utilizzare una particolare memoria permanente denominata EEPROM. Quest'area viene utilizzata per il salvataggio di dati a lungo termine, non è accessibile come le altre zone di memoria in quanto non è mappata come le altre zone di memoria.

Per accedere alla EEPROM sarebbe necessario utilizzare gli "Special Function Register" se non esistesse il tool MCC che può predisporre per noi le funzioni necessarie a scrivere e leggere i contenuti della memoria senza farci addentrare nella delicata impostazione dei registri.

Creiamo un nuovo progetto come illustrato nel post "Microcontrollore PIC da zero" e colleghiamolo a una seriale come nel post "Due parole via RS232" a questo punto non resta che avviare MCC, selezionare nella colonna "Device Resources" la voce "Memory" (cliccandoci sopra due volte) ed abilitare la funzione come indicato in figura.

Schermata 2017 12 26 alle 15.20.25 

Premendo il bottone "Generate" vengono creati due nuovi file: memory.h e memory.c. All'interno dei file ci sono diverse funzioni tra cui anche quelle per la lettura e scrittura della memoria flash; le funzioni che a noi interessano sono DATAEE_ReadByte e DATAEE_WriteByte che si riferiscono alla memoria EEPROM. Il loro utilizzo è particolarmente semplice, tenere in considerazione che è necessario agire un byte alla volta. Questo è un esempio:

eeprom

Ecco il risultato sul terminale RS232 del programma di esempio completo scaricabile da github download project :

eepromdump