<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font face="Times New Roman">Dobrý večer,<br>
      <br>
      poprvé se snažím něco dělat v 8051 (Silabs) s pointrem a asi jsem
      to chybně zapsal, nevím co s tím. Program jsem krokoval, díval
      jsem se co to dělá v asm a vypadá to že se přepíše návratová
      adresa, na konci funkce to skáče na adresu 0000.<br>
      <br>
      U tohoto procesoru C8051F531 je posledních 512 bajtů code paměti
      přístupných jako XDATA (</font><font face="Times New Roman"><font
        face="Times New Roman">jako EEPROM pro konstanty) </font>a má
      to být přístupné přes pointer. Může mi někdo poradit co tam dělám
      špatně? <br>
      <br>
    </font><font face="Times New Roman"><font face="Times New Roman"><font
          face="Times New Roman">void Ctenikonst(void)<br>
          {<br>
          byte i;<br>
          <br>
          int xdata *data Pread=0x1F00;    // initialize FLASH write
          pointer od 1F00<br>
                                                                 // tady
          se správně do R6, R7 vložila adresa 1F00<br>
          i=1;<br>
          do <br>
            {<br>
            Kortepl[i]=*(Pread+i);              // tady překladač dělá
          nějakou hrůzu, vypsal jsem si to a je to na celou stránku     
          <br>
                                                                // moc
          to nechápu a je tam i MUL AB. Tak jestli to místo pointeru
          nepochopilo <br>
                                                                // jako
          násobení. Taky to zmrší návratovou adresu a skáče to na 0000.
          Má to <br>
                                                                //
          zapsat do Kortepl[i] obsah z té adresy 1F00+i <br>
            i++; <br>
            } <br>
          while(i-4);<br>
          }<br>
        </font></font>   <br>
    </font>
  </body>
</html>