Kod för programmering eeprom AT89S8252 i k * E * i * L?

M

mrcube_ns

Guest
Kan någon beskriva hur programm eeprom i AT89S8252 från min ansökan i UC.Jag använder k * il.

Några källa exempel kommer att bli trevligt.

Tack på förhand.

Mr.Cube

 
Termin "snowshoe" odnosi się do metody jaką spamerzy wykorzystują wysyłając swoje wiadomości przez duże obszary Internetu, ciągle utrzymując je na powierzchni, tak jak to robią rakiety śnieżne.

Read more...
 
Min "C" kod
Ledsen, men du måste logga in för att se denna bilaga

 
Prova detta!

////////////////////////////////////////////////// /////////////////
void write_eeprom_byte (unsigned int ADR, unsigned char val)
(
WMCON | = (EEMEN_ | EEMWE_); / / enable EEPROM och ställa skriva lite
DelayMs (5);
XBYTE [ADR] = val; / / skriv värde
while ((WMCON & EERDY_) == 0) / / vänta tills värdet programmerat
DelayMs (5);
WMCON & = ~ (EEMWE_ | EEMEN_); / / inaktivera EEPROM och skriva strobe
)
////////////////////////////////////////////////// /////////////////
unsigned char read_eeprom_byte (unsigned int ADR)
(
unsigned char v;

WMCON | = EEMEN_; / / enable EEPROM
v = XBYTE [ADR]; / / Läs värde
WMCON & = ~ EEMEN_; / / avaktivera EEPROM
return (v);
)
////////////////////////////////////////////////// /////////////////

/ / Write_eeprom_word
/ / Ingångar: unsigned addr 0x000-0x7ff
/ / Int dataword (16 bit längd)
/ / Output:
/ / Samtal: write_eeprom_byte ()
/ / Called by:
void write_eeprom_16 (unsigned int addr, unsigned int dataword) (
char i;
char * ptr = & dataword;

for (i = 0; i <sizeof (dataword), i ) (
write_eeprom_byte (addr i, * ptr);
ptr ;
)
)
////////////////////////////////////////////////// /////////////////

/ / Read_eeprom_word
/ / Ingångar: unsigned addr 0x000-0x7ff
/ / Output: int läsa dataword (16 bit längd)
/ / Called by: write_eeprom_word ()
unsigned int read_eeprom_16 (unsigned int addr) (
char i;
unsigned dataword;
char * ptr = & dataword;for (i = 0; i <sizeof (dataword), i ) (
* ptr = read_eeprom_byte (addr i);
ptr ;
)
return dataword;
)
////////////////////////////////////////////////// //////////////

 
Tyvärr glömde nämna.Du kommer att behöva byta DelayMs med någon rutin som du använder för att ge en fördröjning på cirka 5ms.

 

Welcome to EDABoard.com

Sponsor

Back
Top