Hi guys,
I tried to construct a waveform with more than 6000 points. the program is like:
arg.h . . int xdata wave[6000] . . main(){ . . for...{ wave[i]=i*10; . } .
it passed the compiling and linking. it showed that xdata=12131. but when i ran the program, it's actually showing a messed up waveform. it only works correctly when i reduced the size of the wave[] to 4000, which makes xdata=8131.
i m using version 7.2, and the xram on the board is 128k. i think it's something missing in the program but couldnt figure it out yet since i m just a beginner of mcu programing in c. any suggestion? i really appreciate it.
i=5999 -> 10*i = 59990. Max integer size is 32767. See any problem?
Thank you! but that was a bad example, because even I changed it to:
unsigned int xdata wave[6000]
main(){ . wave[i]=10; . .
I still have the same problem if the size is more than 4000. is there anything to do with the 8k issue i just read http://www.keil.com/support/docs/2177.htm ?
If it does, that suggests that there's an issue with your hardware;
If it doesn't, then there's something more fundamental...
is there anything to do with the 8k issue i just read
No. That's quite a different issue. For starters, your array is not an initialized variable.