This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

External memory

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

Parents
  • 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.

Reply
  • 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.

Children
No data