<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.StylE-mailovZprvy17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.StylE-mailovZprvy18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=CS link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>Dobré odpoledne,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Tak nic kloudného jsem nevyggoglil, nakonec jsem to dal takhle a chodí to,i když to košer tedy není.  Ale chodí to.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>typedef union {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    struct {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               int StrukturaPoveluAll;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               _VycetPoveluDS18B20 Povel;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               char Teplota_LSB;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               char Teplota_MSB;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               char;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    };<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    struct StrukturaRead {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               char PoradiBitu; // kolikáty bit se přijímá<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               char CRC;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               _VycetPoveluDS18B20; //Povel<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               char; //TeplotaLSB;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               char; //Teplota_MSB<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>               char Work; // Work<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    } Read;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>} xDS18B20_status;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>//--------------------------------------------------------------------------------<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>xDS18B20_status DS18B20_status;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>//--------------------------------------------------------------------------------<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>void DS18B20_CRCcheck ()<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>{<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    DS18B20_status.Read.PoradiBitu = 8; //pocet pripoctenych bitu 8<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>#asm<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    PoradiBitu       set _DS18B20_status;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    CRC                  set _DS18B20_status + 1;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    Work                set _DS18B20_status + 5;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>vypcr0:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    RRCF Work, f; //LSB do C<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    BC vypcr3;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    BTFSC CRC, 7;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    goto vypcr4; //CRC (7) = 1, C = 0<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>vypcr1:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    BCF (STATUS), 0; //CRC (7).XOR.C = 0<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    RLCF CRC, f;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>vypcr2:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    DECFSZ PoradiBitu, f;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    GOTO vypcr0;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    RETURN;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>vypcr3:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    BTFSC CRC, 7;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    GOTO vypcr1; //CRC (7).XOR.C = 0<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>vypcr4:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    MOVLW 18h; //CRC (7).XOR.C = 1<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    XORWF CRC, f; //CRC.XOR.18h<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    BSF (STATUS), 0;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    RLCF CRC, f;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>    GOTO vypcr2;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>#endasm<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>}<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Hw-list [mailto:hw-list-bounces@list.hw.cz] <b>On Behalf Of </b>Miroslav Draxal<br><b>Sent:</b> Sunday, April 06, 2014 1:27 PM<br><b>To:</b> 'HW-news'<br><b>Subject:</b> HiTech 9,80 #asm se v tom topím<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Dobrý den,<o:p></o:p></p><p class=MsoNormal>Mějme <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>typedef union {<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>    struct {<o:p></o:p></p><p class=MsoNormal>               int StrukturaPoveluAll;<o:p></o:p></p><p class=MsoNormal>               _VycetPoveluDS18B20 Povel;<o:p></o:p></p><p class=MsoNormal>               char Teplota_LSB;<o:p></o:p></p><p class=MsoNormal>               char Teplota_MSB;<o:p></o:p></p><p class=MsoNormal>               char;//Work<o:p></o:p></p><p class=MsoNormal>    };<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>    struct StrukturaWrite {<o:p></o:p></p><p class=MsoNormal>               char PoradiBitu; // kolikátý bit se odesílá<o:p></o:p></p><p class=MsoNormal>               unsigned WriteDruhaPolovina : 1; // (zápis 1 = lo5μs  hi65μs) , (zápis 0 = lo60μs hi10μs)   set= druhá polovina<o:p></o:p></p><p class=MsoNormal>               unsigned WriteHIlo : 1; // 1 = zapisuje se 1 (zápis 1 = lo5μs  hi65μs)<o:p></o:p></p><p class=MsoNormal>               unsigned BytAll10usWait : 1; // 1 = poslední bit byla 0 (zápis 0 = lo60μs hi10μs), čekej pouze 10μs a okamžitě jdi na další byt<o:p></o:p></p><p class=MsoNormal>               unsigned : 5;<o:p></o:p></p><p class=MsoNormal>               _VycetPoveluDS18B20; //Povel<o:p></o:p></p><p class=MsoNormal>               char; //TeplotaLSB;<o:p></o:p></p><p class=MsoNormal>               char; //Teplota_MSB<o:p></o:p></p><p class=MsoNormal>               char; // Work<o:p></o:p></p><p class=MsoNormal>    } Write;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>    struct StrukturaRead {<o:p></o:p></p><p class=MsoNormal>               char PoradiBitu; // kolikáty bit se přijímá<o:p></o:p></p><p class=MsoNormal>               char;<o:p></o:p></p><p class=MsoNormal>               _VycetPoveluDS18B20; //Povel<o:p></o:p></p><p class=MsoNormal>               char; //TeplotaLSB;<o:p></o:p></p><p class=MsoNormal>               char; //Teplota_MSB<o:p></o:p></p><p class=MsoNormal>               char Work; // Work<o:p></o:p></p><p class=MsoNormal>    } Read;<o:p></o:p></p><p class=MsoNormal>} DS18B20_status_;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>DS18B20_status_  DS18B20_status<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Při pokusu přístupu<o:p></o:p></p><p class=MsoNormal>#asm<o:p></o:p></p><p class=MsoNormal>DECFSZ _DS18B20_status.Read.PoradiBitu, f;<o:p></o:p></p><p class=MsoNormal>#endasm<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>To hodí při překladu chybu <o:p></o:p></p><p class=MsoNormal>../DS18B20.c:68: error: lexical error<o:p></o:p></p><p class=MsoNormal>../DS18B20.c:69: error: syntax error<o:p></o:p></p><p class=MsoNormal>C:\Users\Colombo\AppData\Local\Temp\ssno.:10494: error: lexical error<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Nemáte tušení, jak k té struktuře přistoupit z bloku ASM?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Míra<o:p></o:p></p></div></body></html>