We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi All,
I am using DS89C450 MCU and writing my C code using uVision 4 compiler. In my DS89, I had a SRAM of 1kB and I would like to declare a 500 variable of unsigned char therefore I use
unsigned char xdata IR[500];
When I compiler with uVision 4, it show no error and therefore I burn the Hex code into my MCU. However, when I write and then read the IR[500], it give incorrect value
I therefore proceed to use debugger to troubleshoot my code and everything works fine in the debugger. My code does not have any problem.
Therefore I suspect uVision 4 had assign the IR[500] to non SRAM location and therefore the value is actually not written and read.
I would like to know how can I make sure uVision4 assign the SRAM location correctly and is there any setting I need to set before compiling?
Pls help. Thanks a lot
http://www.keil.com/support/man/docs/c51/c51_ap_customfiles.htm
And, again: http://www.keil.com/books/8051books.asp
some people, I shall not mention who, had made this huge '51 project and asked me for help.
Early on I realized that main() started something like this
void main(void) { indexer =0; offset = 0; temp = 0; ...... ...... ......
When I asked "why" the reply was "this compiler (Keil) does not initialize variables". well guess what
Erik