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
  • Now I'm a bit confused.

    You say that the display shows the address of the RAM memory, and speculate that the memory address remains on PORT0.

    But are the display listening on PORT0? Isn't it listening on P1, since your code tries to emit data on P1?

    Have you verified that if you only emit data directly from your code to the display, the display shows correct data?

    Have you verified that if you write data to the external RAM, you can read it back correctly (and in another order than you wrote it)?

Reply
  • Now I'm a bit confused.

    You say that the display shows the address of the RAM memory, and speculate that the memory address remains on PORT0.

    But are the display listening on PORT0? Isn't it listening on P1, since your code tries to emit data on P1?

    Have you verified that if you only emit data directly from your code to the display, the display shows correct data?

    Have you verified that if you write data to the external RAM, you can read it back correctly (and in another order than you wrote it)?

Children
No data