Tilgang til E2prom på Atmel 89S8252 fra C-språk

B

bobcat1

Guest
Tilgang til E2prom på Atmel 89S8252 fra C-språk
Dette eksemplet er skrevet på k * eil C compilerps laste ned bare en fil 2nd var opp loadded av Místek

likebobi
Beklager, men du må logge inn for å vise dette vedlegget

 
Andre funksjoner:

/************************************************* ***************************/
/ * EEpromWrite (adresse, verdi) * /
/************************************************* ***************************/
unsigned char EEpromWrite (unsigned int adresse, unsigned int verdi)
(
unsigned char feile, LSB, MSB;
unsigned int b_addr;

b_addr = postadresse * 2;

ERR = FALSE;

if (adresse> 0x03FF)
Err = TRUE; / * adresse utenfor rekkevidde * /
ellers
(
TR0 = 0; / * TR0: stoppe Counter T0 * /
EA = 0; / * Deaktiver alle Interrups * /

WMCON | = EEMEN; / * aktivere EEPROM tilgang * /
WMCON | = EEMWE; / * aktivere EEPROM skriver * /

LSB = verdi% 256; / * Beregn LSB byte * /
XBYTE [b_addr] = LSB; / * Skriv LSB byte * /
while (! (WMCON & WDTRST)); / * Vent til slutten av skrive EEPROM * /

MSB = verdi / 256; / * Beregn MSB byte * /
XBYTE [b_addr 1] = MSB; / * Skriv MSB byte * /
while (! (WMCON & WDTRST)); / * Vent til slutten av skrive EEPROM * /

if (LSB! = XBYTE [b_addr]) ERR = TRUE; / * Sammenligne data * /
if (MSB! = XBYTE [b_addr 1]) ERR = TRUE; / * Sammenligne data * /

WMCON ^ = EEMWE; / * deaktivere EEPROM skriver * /
WMCON ^ = EEMEN; / * deaktivere EEPROM tilgang * /

END_SAMP = 0; / * Seted etter Nsamples lese * /
sample_count = 0; / * Clear prøvene teller * /

EA = 1; / * Aktiver alle Interrups * /
TR0 = 1; / * TR0: Kjør Counter T0 * /
)

return (ERR);
)

/************************************************* ***************************/
/ * EEpromRead (adresse) - Les 2 bytes fra Internaal EEPROM * /
/ * Inngang: unsigned int adresse - adressen til første byte å lese * /
/ * Output: unsigned int value - value = MSB * 256 LSB; * /
/************************************************* ***************************/
unsigned int EEpromRead (unsigned int adresse)
(
unsigned int b_addr, verdi;

b_addr = postadresse * 2;

EA = 0x00; / * Deaktiver alle Interrups * /

WMCON | = EEMEN; / * aktivere EEPROM tilgang * /

value = XBYTE [b_addr 1];
Verdien *= 256;
value = XBYTE [b_addr];

WMCON ^ = EEMEN; / * deaktivere EEPROM tilgang * /

EA = 0x01; / * Aktiver alle Interrups * /

return value;
)

 
Disse opplastinger er nyttig, takk folkens.

Eskimo, jeg er ny på C, men should'nt EEpromWrite være unsigned int hvis du skriver 16 biter?.

Dessuten er det et krav om å stoppe counter 0.Hva om en RTOS bruker?.

 

Welcome to EDABoard.com

Sponsor

Back
Top