Hi all, Hope someone can explain what I am doing wrong. I have the following problem. I am using a AT89C51ED2 micro and running PK51 8.01. I want to write a variable to and read a variable from eeprom. I have done a search on the Keil web site and have gained some advance, but, I can read data from eeprom (V:0x00 - V:????). When I write to eeprom I see it going into xdata and not the eeprom (v-data). Is this correct? Also the EEBUSY flag is never set (EECON bit '0') Maybe (hopefully) I'm doing something wrong somewhere and someone will spot it. Below I include my test program.
#include <at89c51xd2.h> #include <absacc.h> void WriteEEPROM (unsigned int adr, unsigned char val) small { EA = 0; EECON = 0x02; // enable EEPROM and set write bit XBYTE[adr] = val; while(EECON & 0x01) // wait untill programmed { } EECON = 0x00; // disable EEPROM EA = 1; } unsigned char Read_EEPROM (unsigned char adr) small { unsigned char v; EA = 0; EECON = 0x02; // enable EEPROM v = XBYTE[adr]; EECON = 0x00; // disable EEPROM EA = 1; return (v); } unsigned char v; unsigned char f; void main (void) { while (1) { v = Read_EEPROM(0x00); f = v*2; WriteEEPROM (0x10, f); // write 9 to EEPROM address 0x001 } } I am only using Dscope, so I can't comment on it working or not working on a live system. Thanks in advance for any responses Kind regards John Garrelts
Hasn't anyone had this problem before?? Regards John
Hi John, Hoe gaat het met je? Laat es wat van je horen? Ben benieuwd waar jij staat in dit leven... Je oude collega, Robert Hier is alles goed, zowel prive als business, zoek niet contact om oude zaken op te rakelen maar je schoot in mijn hoofd en dacht ik zoek je ff via het net.
We added device simulation for this brand-new Atmel part in V8.02a. You need to upgrade your software. Reinhard