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.
hello, i've declared an external memory mapped at address 8000H, and load data into it :
unsigned char xdata xdisp[15][24] _at_ 0x8000; unsigned char i; for (i = 0; i < 16; i++) { xdisp[i][0] = i; xdisp[i][1] = i + 1; xdisp[i][2] = i + 2; xdisp[i][3] = i + 3; xdisp[i][4] = i + 4; xdisp[i][5] = i + 5; } for (i = 0; i < 16; i++) { P1 = xdisp[i][0]; }
the result in P1 is the address of xdisp[i][0] and not the value in it. how can i use a pointer or something else to recieve the values.
thanks
i didn't mention the hardware but it's working fine.
Nonsense. It's clearly not working. Or do you call that:
so what happen is that the 6264 dont send the data out, and the lower byte of the address 0x8018 remains in PORT0, WHY?
properly working hardware? Your hardware behaves as if that RAM chip just didn't exist.
and do i need to set values in STARTUP.A51 or leave it's default values ?
How is anybody supposed to know --- you haven't told what your actual hardware is. What microcontroller, in particular, at what clock frequency.