HI,
How to specify a address while writing to EEPROM in 89c51ED2.
It is writing to EEPROM when I give the following code after setting the flags of EECON register.
XBYTE[0x0050] = '1';
But if I declare a variable with following type and assign a value to it, it is not writing to EEPROM
unsigned char xdata *addr; *addr = '1';
//after setting all the flags i write this code for assigning;
*addr = '2';
But this is not writing to EEPROM.
Kindly provide the solution for this.
I typically design 8051 code using the SMALL model and use explicit xdata qualifiers where necessary, so I have never needed to try this, but you might try explicitly declaring and defining your EEPROM routines to use the SMALL model in your otherwise LARGE model project. For example:
void WriteE2ROM(unsigned char xdata *Addr,unsigned int e_data) small { } unsigned int ReadE2ROM(unsigned char xdata *Addr) small { }
Don't forget to also qualify the extern declarations.
That might be a way of avoiding the assembly language routine.
I'll post this in the other thread also. Why two threads were necessary, I don't know.