Težava Pisanje in branje EEPROM za 16F877A

V

vin2403

Guest
primer,
napisati 22 v naslovu 0xFF
napisati 44 v naslovu 0xFE
napisati 88 v naslovu 0xFC

ko sem prebrala
naslov 0xFF hranite 88
naslov 0xFE hranite 44
naslov 0xFC hranite 22

Zakaj se to dogaja? Lahko koli pro Pomoč

 
Ali lahko objava kodo ki jo uporabljate za pisanje, da so podatki?

 
neveljaven saveData ()
(
if (RB1 == 0 | | RB2 == 0)
(
zamude (250);

EEADR = 0xFF;
EEDATA = hCount;
WREN = 1;
EECON2 = 0x55;
EECON2 = 0xAA;
WR = 1;
medtem ko (WR == 1) naprej;

WREN = 0;EEADR = 0xFE;
EEDATA = lCount;
WREN = 1;
EECON2 = 0x55;
EECON2 = 0xAA;
WR = 1;
medtem ko (WR == 1) naprej;

WREN = 0;EEADR = 0xFC;
EEDATA = powCount;
WREN = 1;
EECON2 = 0x55;
EECON2 = 0xAA;
WR = 1;
medtem ko (WR == 1) naprej;

WREN = 0;
))

neveljaven readData ()
(

EEADR = 0xFF;
powCount = EEDATA;
RD = 1;EEADR = 0xFE;
hCount = EEDATA;
RD = 1;EEADR = 0xFC;
lCount = EEDATA;
RD = 1;

)
če sem dal kot tis, dobim želeni rezultat, vendar zakaj, y podatke ned brati iz različnih naslov.

 
Ena stvar, ki sem obvestilo takoj, da ne boste Nastavitev / Re-Nastavitev EECON1 bit 7, ki določa, ali ste pisno EEPROM pomnilnik podatkov ali programa.EEPGD malo EECON1 register mora biti "0" za dostop do podatkov v pomnilniku.

V "glasi" funkcijo, vam zdi, da se dodeljevanje vrednosti EEDATA pred določitev "DR" zastave za in 1 proti.To pomeni, da je "stari" vrednost se prenese.Z drugimi besedami, najprej preberete boste poskušali dejansko hrani zadnjih podatkih ste se poizkusili vpisati.The glasi funkcija mora izgledati takole:

Koda:

neveljaven readData ()

(

EEADR = 0xFF;

RD = 1;

powCount = EEDATA;EEADR = 0xFE;

RD = 1;

hCount = EEDATA;
EEADR = 0xFC;

RD = 1;

lCount = EEDATA;

)
 
Ja, to dela, hvala vam pomagajo, in bo skrbno naslednjem i uporabljate.

 

Welcome to EDABoard.com

Sponsor

Back
Top