Vai al contenuto
PLC Forum


Pic16F876 Scrittura/Lettura Eeprom Di Più Byte


sfinge

Messaggi consigliati

Salve a tutti,

vorrei salvare dati su più celle di memoria EEPROM (16byte)e leggerli all'avvio ma non capisco dove sta l'errore.Su un singolo byte è funzionante.

Grazie anticipatamente per l'eventuale aiuto.E'forse un'area di memoria non corretta?

Uso il compilatore della CCS

void WriteEEprom (void)

{

WrReq=Off;

for(ind=0;jobdata[ind<16]{

//test bit fine scrittura

if(!WR){

//assegna al puntatore l'indirizzo della variabile da scrivere

ptr=&jobdata[ind];

//assegna agli sfr indirizzo e valore della variabile da scrivere

EEADR=ptr;

EEDATA=jobdata[ind];

//avvio procedura per scrittura su EEprom

EEPGD=Off;

WREN=On;

GIE=Off;

EECON2=0x55;

EECON2=0xAA;

WR=On;

GIE=On;

WREN=Off;

DelayMs(10);

ind++; //<<<<<<< ho provato anche così jobdata[ind++]

}

}

ActivePage = 32; //visualizza pagina fine scrittura

}

//ReadEEprom----------------------------------------

void ReadEEprom (void)

{

for(ind=0;jobdata[ind<16]{

//test bit fine lettura

if(!RD){

//assegna al puntatore l'indirizzo della variabile da leggere

ptr=&jobdata[ind];

//assegna allo sfr l'indirizzo della variabile da leggere

EEADR=ptr;

//avvio procedura per lettura su EEprom

EEPGD=Off;

RD=On;

//legge il contenuto

jobdata[ind]=EEDATA;

DelayMs(10);

ind++; //<<<<<<<<< ho provato anche così jobdata[ind++]

}

}

}

Link al commento
Condividi su altri siti


Uso anch'io CCS e non ho mai avuto problemi di sorta con questo tipo di lettura - scrittura.

A quest'ora non sono ancora completamente in pieno possesso delle mie facoltà mentali, quindi non son sicuro di quello che leggo. :wacko:

Vedo di recuperare le funzioni che uso di solito, testate e funzionanti, poi le pubblico così puoi confrontare se e dove ci sono differenze.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...