<html>
  <head>
    <meta content="text/html; charset=iso-8859-2"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">No koukám že tady se Silabsama asi
      nikdo nedělá :-( nakonec jsem to ovládání displeje přepsal do
      céčka. Je to sice proti mému přesvědčení, dělá to pár instrukcí
      navíc, ale dál to už neřeším. Problém s kterým jsem nepočítal,
      C8051F860 nemá u sériového kanálu režim 0. Má jen 1 a 3.<br>
      <br>
      Co jsem ještě našel na stránce Silabsu:<br>
<a class="moz-txt-link-freetext" href="http://community.silabs.com/t5/Simplicity-Studio-and-Software/requires-src-control-to-be-active/td-p/47583">http://community.silabs.com/t5/Simplicity-Studio-and-Software/requires-src-control-to-be-active/td-p/47583</a><br>
      Keil údajně dobře nezvládá in line asm, zapnout <span
        style="font-style:" italic="">active src-control je taky problém
        a když jsem to podle tohoto návodu změnil, taky to nešlo.<br>
        Propojení samostatného asm souboru s céčkem je taky asi
        duchařina :-( <br>
        <a class="moz-txt-link-freetext" href="http://www.keil.com/support/docs/1671.htm">http://www.keil.com/support/docs/1671.htm</a><br>
        Doporučují nejdřív vytvořit src a ten si pak přepsat něčím svým.
        <br>
        <br>
        Vzal jsem dva hotové příklady na mixed c + asm a in-line asm a
        nepovedlo se ani jedno přeložit. <br>
<a class="moz-txt-link-freetext" href="http://community.silabs.com/t5/8-bit-MCU-Knowledge-Base/Mixing-C-and-Assembly-Code/ta-p/110793">http://community.silabs.com/t5/8-bit-MCU-Knowledge-Base/Mixing-C-and-Assembly-Code/ta-p/110793</a><br>
        Ve starém dosovském Keilu jsem běžně kombinaci c + asm používal
        :-(   </span>  <br>
      <br>
      Anděl<br>
         <br>
      Dne 1.5.2015 v 17:44 Vláďa Anděl napsal(a):<br>
    </div>
    <blockquote cite="mid:55439F53.4030900@vaelektronik.cz" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=iso-8859-2">
      <font face="Times New Roman">Dobrý den,<br>
        půl dne vymýšlím co s tím, aby mi fungovalo propojení c a asm v
        IDE od Silabsu. Nevím, co dělám špatně. V dobách kdy jsem
        používal starý dosovský Keil, kombinoval jsem c + asm takhle:<br>
..............................................................................<br>
        začátek C<br>
        <br>
        #pragma DB OE<br>
        #pragma code<br>
        #pragma print<br>
        <br>
        #include <reg51.h>   <br>
        extern void ZOBR(void);<br>
...............................................................................<br>
        začátek asm<br>
        <br>
        NAME    ROT<br>
        PUBLIC    ZOBR<br>
        USING    0<br>
        <br>
        DISPLEJ   SEGMENT    CODE<br>
        RSEG    DISPLEJ<br>
        EXTRN DATA    (Bufdisp)<br>
        <br>
        clk7s       EQU    P3.3    ; displej 7 segm<br>
        datad       EQU    P3.1    ; data<br>
        <br>
        ZOBR:    MOV     R6,     #6               ;pocet pozic displeje<br>
                        MOV     R0,     #Bufdisp    ;pocatecni adresa
        dat<br>
        ZOB1:    MOV     R7, #8                   ;pocet bitu v bajtu<br>
                        MOV     A, @R0                 ;zobrazena data<br>
...............................................................................................<br>
      </font><font face="Times New Roman">Jenže v IDE od Silabsu (v tom
        jejich starším 4.90.00) to nefunguje. Samotný c a asm se přeloží
        správně, ale když spustím build all, napíše to<br>
        WARNING L1  UNRESOLVED EXTERNAL SYMBOL<br>
        SYMBOL: ZOBR<br>
        MODULE: C:\ ...... regdrn.obj<br>
        <br>
      </font><font face="Times New Roman"><font face="Times New Roman">WARNING

          L2  REFERENCE MADE TO UNRESOLVED EXTERNAL</font><br>
      </font><font face="Times New Roman"><font face="Times New Roman">SYMBOL:

          ZOBR<br>
          ADRESS: 04A7H<br>
        </font><br>
        Něco jsem o tom našel tady<br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
          href="http://www.keil.com/support/docs/1671.htm">http://www.keil.com/support/docs/1671.htm</a><br>
        <br>
        a do hlavičky asm jsem doplnil<br>
        EXTRN   CODE (Dispint)     <br>
        což je název funkce, odkud se ZOBR volá z céčka. Dělá to stále
        to samé.<br>
        Není mi jasné, jak v tom příkladu mají název funkce <br>
        ?PR?a_func?A_FUNC<br>
        jestli jim to jen takhle vygeneroval překladač, nebo je potřeba
        dodržet nějakou konstrukci názvu?<br>
        <br>
        Také jsem jsem našel, že lze použít i inline asm. Vložil jsem
        tedy asm takhle<br>
        <br>
        //ZOBR();   // puvodni zobrazeni buferu na displej<br>
        #pragma asm<br>
                MOV        R6,    #6          ;pocet pozic displeje<br>
                MOV        R0,    #Bufdisp    ;pocatecni adresa dat<br>
        <br>
        ZOB1: MOV    R7, #8             ;pocet bitu v bajtu<br>
                MOV        A,    @R0         ;zobrazena data<br>
                INC          R0                     ;dalsi pozice<br>
        ZOB2:   RRC        A                                  <br>
                MOV    datad,C                ;CARRY DO  DATA        <br>
                CLR      clkd                     ;UKONCENI CLK         
        <br>
                SETB    clkd                     ;ZACATEK CLK IMPULZU  
        <br>
                DJNZ     R7, ZOB2                              <br>
                DJNZ    R6, ZOB1                             <br>
        #pragma endasm<br>
        }<br>
        <br>
        Tam mi to zase píše<br>
        ERROR C272 IN LINE 371 OF regdrn2.c   'asm/endasm requires
        src-control to be active<br>
      </font><font face="Times New Roman"><font face="Times New Roman">ERROR

          C272 IN LINE 388 OF regdrn2.c   'asm/endasm requires
          src-control to be active<br>
          <br>
          a marně hledám, kde src-control zapnout. <br>
          <br>
          Dokáže mi někdo poradit co s tím?<br>
        </font><br>
          <br>
      </font> <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
HW-list mailing list  -  sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>