<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><font face="Arial">Pokud se nemýlím, tak obě verze se liší jen
        použitím bitRead. Zkuste místo toho napsat posun TEST1 vpravo o
        R-1 + and 1</font><br>
    </p>
    <pre class="moz-signature" cols="72">Martin Záruba</pre>
    <div class="moz-cite-prefix">Dne 29.1.2024 v 14:07 Jirka Mww
      napsal(a):<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGNMtu0ycu3qapF_tyZiJfL2tcyeR7Dwj=NyvXQJh1mmFb3FKQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Dobrý den,
        <div><br>
        </div>
        <div>tak jsem se k tomu zase dostal, dole je zdrojovy kod té
          přerušovací rutiny.  K tomu jen pár vysvětlení :</div>
        <div>Celé to má sloužit k imitaci snímače absolutního úhlu ,  je
          to spouštěné sestupnou hranou CS ( žlutá) , CLKEXT ( fialová) 
          , jsou hodiny  generované nadřízeným systémem, DOEXT je výstup
          s daty, měla by se přenést proměnná TEST1. </div>
        <div>V hlavní smyčce programu je aktuálně jen delay (100), jinak
          se tam nic nedělá</div>
        <div>Proměnná TEST1 se v přerušovací rutině opakovaně
          plní 0xAAA, takže riziko, že ji nějak přepíše něco v hlavní
          smyčce je snad nulové</div>
        <div>Když ten řádek, kde se zapisuje , tj. <span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre"> </span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;color:rgb(211,84,0)">digitalWrite</span><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre"> </span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;color:rgb(67,79,84)">(</span><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre">DOEXT,</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;color:rgb(211,84,0)">bitRead</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;color:rgb(67,79,84)">(</span><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre">TEST1,R</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;color:rgb(67,79,84)">))</span><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre">;  nahradím tím, co je v komentáři ( XREF= !XREF atd...), tj. jen reverzací proměnné XREF</span></div>
        <div><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre">tak to dává data dle obrázku v příloze - žlutá je CS, od toho je to přerušení, fialová jsou hodiny - oboje generované nadřízeným systémem</span></div>
        <div><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre">Modrá jsou data - tak nějak bych si to představoval , že by to mělo vypadat</span></div>
        <div>Na všech třech drátech mám osciloskop - viz přiložený
          obrázek  </div>
        <div>Když to pustím po resetu s tím digitalWrite<span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;color:rgb(67,79,84)">(</span><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre">DOEXT,</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;color:rgb(211,84,0)">bitRead</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;color:rgb(67,79,84)">(</span><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre">TEST1,R</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;color:rgb(67,79,84)">))</span><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre">; tak mi na osciloskopu nějaká data jednou probliknou, ani nejsou celá, a pak ten výstup DOEXT ( modrý ) zůstane trvale v nule.</span></div>
        <div><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre">
</span></div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>
          <div style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;line-height:19px;white-space:pre"><div><span style="color:rgb(149,165,166)">   /*  RUTINA PRo VYSTUP DAT     */</span></div><div> <span style="color:rgb(0,151,157)">void</span> <span style="color:rgb(211,84,0)">DataOut</span><span style="color:rgb(67,79,84)">()</span> <span style="color:rgb(67,79,84)">{</span></div><div><span style="color:rgb(149,165,166)">   // cli(); // disable global interrupts</span></div><div>   <span style="color:rgb(0,151,157)">volatile</span> byte K;<span style="color:rgb(149,165,166)">                 // pocitadlo pro hodiny</span></div><div>   <span style="color:rgb(0,151,157)">volatile</span> byte R;<span style="color:rgb(149,165,166)">                 // pocitadlo pro vystup bitu</span></div><div>   <span style="color:rgb(0,151,157)">volatile</span> <span style="color:rgb(0,151,157)">unsigned</span> <span style="color:rgb(0,151,157)">int</span>  TEST1 = 0x<span style="color:rgb(0,92,95)">AAA</span>;<span style="color:rgb(149,165,166)">             // jen pro test</span></div><div>   <span style="color:rgb(0,151,157)">volatile</span> byte  XREF = <span style="color:rgb(0,92,95)">0</span>;<span style="color:rgb(149,165,166)">           // pro vysledek</span></div><div>    K= <span style="color:rgb(0,92,95)">10</span>;</div><div>    R= <span style="color:rgb(0,92,95)">10</span>;</div><div>     XREF = <span style="color:rgb(0,92,95)">0</span>;</div><div>   <span style="color:rgb(114,142,0)">do</span> <span style="color:rgb(67,79,84)">{</span> <span style="color:rgb(211,84,0)">digitalRead</span><span style="color:rgb(67,79,84)">(</span>CLKEXT<span style="color:rgb(67,79,84)">)</span>;<span style="color:rgb(67,79,84)">}</span> <span style="color:rgb(114,142,0)">while</span> <span style="color:rgb(67,79,84)">(</span><span style="color:rgb(211,84,0)">digitalRead</span><span style="color:rgb(67,79,84)">(</span>CLKEXT<span style="color:rgb(67,79,84)">)</span> == HIGH<span style="color:rgb(67,79,84)">)</span>;<span style="color:rgb(149,165,166)">// ceka na sest. hranu hodin</span></div><div>   <span style="color:rgb(211,84,0)">delayMicroseconds</span><span style="color:rgb(67,79,84)">(</span><span style="color:rgb(0,92,95)">30</span><span style="color:rgb(67,79,84)">)</span>;</div><div>   <span style="color:rgb(114,142,0)">do</span>  <span style="color:rgb(67,79,84)">{</span></div><div>          <span style="color:rgb(114,142,0)">do</span> <span style="color:rgb(67,79,84)">{</span><span style="color:rgb(211,84,0)">digitalRead</span><span style="color:rgb(67,79,84)">(</span>CLKEXT<span style="color:rgb(67,79,84)">)</span>;<span style="color:rgb(67,79,84)">}</span> <span style="color:rgb(114,142,0)">while</span> <span style="color:rgb(67,79,84)">(</span><span style="color:rgb(211,84,0)">digitalRead</span><span style="color:rgb(67,79,84)">(</span>CLKEXT<span style="color:rgb(67,79,84)">)</span> == LOW<span style="color:rgb(67,79,84)">)</span>;<span style="color:rgb(149,165,166)"> // ceka na vzestupnou hranu, aby zapsal data</span></div><div>          <span style="color:rgb(211,84,0)">delayMicroseconds</span><span style="color:rgb(67,79,84)">(</span><span style="color:rgb(0,92,95)">3</span><span style="color:rgb(67,79,84)">)</span>;</div><div>          <span style="color:rgb(211,84,0)">digitalWrite</span> <span style="color:rgb(67,79,84)">(</span>DOEXT,<span style="color:rgb(211,84,0)">bitRead</span><span style="color:rgb(67,79,84)">(</span>TEST1,R<span style="color:rgb(67,79,84)">))</span>;  // tady je problem</div><div><span style="color:rgb(149,165,166)">    // XREF = !XREF;                                                             // tohle dává obrázek na osciloskopu v příloze</span></div><div><span style="color:rgb(149,165,166)">    // if ( XREF > 0) {digitalWrite (DOEXT,0);} else { digitalWrite (DOEXT,1);} </span></div><div>        <span style="color:rgb(211,84,0)">delayMicroseconds</span><span style="color:rgb(67,79,84)">(</span><span style="color:rgb(0,92,95)">30</span><span style="color:rgb(67,79,84)">)</span>;</div><div>        K= K-<span style="color:rgb(0,92,95)">1</span>; </div><div>        R = R-<span style="color:rgb(0,92,95)">1</span>;</div><div>        <span style="color:rgb(114,142,0)">do</span> <span style="color:rgb(67,79,84)">{</span><span style="color:rgb(211,84,0)">digitalRead</span><span style="color:rgb(67,79,84)">(</span>CLKEXT<span style="color:rgb(67,79,84)">)</span>;<span style="color:rgb(67,79,84)">}</span> <span style="color:rgb(114,142,0)">while</span> <span style="color:rgb(67,79,84)">(</span><span style="color:rgb(211,84,0)">digitalRead</span><span style="color:rgb(67,79,84)">(</span>CLKEXT<span style="color:rgb(67,79,84)">)</span> == HIGH<span style="color:rgb(67,79,84)">)</span>;<span style="color:rgb(149,165,166)">  // ceka na sestupnou hranu kdy Master cte data</span></div><div>         <span style="color:rgb(211,84,0)">delayMicroseconds</span><span style="color:rgb(67,79,84)">(</span><span style="color:rgb(0,92,95)">30</span><span style="color:rgb(67,79,84)">)</span>;</div><div>        <span style="color:rgb(67,79,84)">}</span>  <span style="color:rgb(114,142,0)">while</span>  <span style="color:rgb(67,79,84)">(</span>K>= <span style="color:rgb(0,92,95)">0</span><span style="color:rgb(67,79,84)">)</span>; </div><div>     <span style="color:rgb(114,142,0)">do</span> <span style="color:rgb(67,79,84)">{</span><span style="color:rgb(211,84,0)">digitalRead</span><span style="color:rgb(67,79,84)">(</span>CLKEXT<span style="color:rgb(67,79,84)">)</span>;<span style="color:rgb(67,79,84)">}</span> <span style="color:rgb(114,142,0)">while</span> <span style="color:rgb(67,79,84)">(</span><span style="color:rgb(211,84,0)">digitalRead</span><span style="color:rgb(67,79,84)">(</span>CLKEXT<span style="color:rgb(67,79,84)">)</span> == LOW<span style="color:rgb(67,79,84)">)</span>;<span style="color:rgb(149,165,166)">  // konecny prechod do jednicky    </span></div><div>     <span style="color:rgb(211,84,0)">sei</span><span style="color:rgb(67,79,84)">()</span>;<span style="color:rgb(149,165,166)"> // enable interrupts</span></div><div>  </div><div>  <span style="color:rgb(67,79,84)">}</span><span style="color:rgb(149,165,166)"> // konec preruseni</span></div></div>
        </div>
        <div> <br clear="all">
          <div>
            <div dir="ltr" class="gmail_signature"
              data-smartmail="gmail_signature">Zdravi<br>
              Jirka Sloupenský  OK1MWW</div>
          </div>
          <br>
        </div>
      </div>
      <div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br>
        <table style="border-top:1px solid #d3d4de">
          <tbody>
            <tr>
              <td style="width:55px;padding-top:13px"><a
href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"
                  target="_blank" moz-do-not-send="true"><img
src="https://s-install.avcdn.net/ipm/preview/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif"
                    alt="" style="width: 46px; height: 29px;"
                    moz-do-not-send="true" width="46" height="29"></a></td>
              <td
style="width:470px;padding-top:12px;color:#41424e;font-size:13px;font-family:Arial,Helvetica,sans-serif;line-height:18px">Neobsahuje
                žádné viry.<a
href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"
                  target="_blank" style="color:#4453ea"
                  moz-do-not-send="true">www.avast.com</a></td>
            </tr>
          </tbody>
        </table>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">ne 28. 1. 2024 v 20:49
          odesílatel Jaroslav Buchta <<a
            href="mailto:jaroslav.buchta@hascomp.cz"
            moz-do-not-send="true" class="moz-txt-link-freetext">jaroslav.buchta@hascomp.cz</a>>
          napsal:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div>
            <div>nebo sem poslat cast zdrojaku...<br>
            </div>
            <div>Dne 28.01.2024 v 20:09 Jirka Mww napsal(a):<br>
            </div>
            <blockquote type="cite">
              <div dir="auto">Tím to bohužel nebude, v současném stavu
                tam v hlavní smyčce dávám konstantu a ani ta se celá
                neposle.Bude to nějaká blbost, asi to chce pauzu...</div>
              <br>
              <div class="gmail_quote">
                <div dir="ltr" class="gmail_attr">Dne ne 28. 1. 2024
                  19:03 uživatel Jaroslav Buchta <<a
                    href="mailto:jaroslav.buchta@hascomp.cz"
                    target="_blank" moz-do-not-send="true"
                    class="moz-txt-link-freetext">jaroslav.buchta@hascomp.cz</a>>
                  napsal:<br>
                </div>
                <blockquote class="gmail_quote" style="margin:0px 0px
                  0px 0.8ex;border-left:1px solid
                  rgb(204,204,204);padding-left:1ex">
                  <div>
                    <div>Data jsou sdilena v jednom pametovem prostoru,
                      v tom by problem byt nemel. Tipnul bych, ze bude
                      nejaky problem v synchronizaci hlavni smycky a
                      data se prepisou znova driv, nez se odeslou?<br>
                    </div>
                    <div>Dne 28.01.2024 v 19:00 Jirka Mww napsal(a):<br>
                    </div>
                    <blockquote type="cite">
                      <div dir="ltr">Dobrý večer,
                        <div><br>
                        </div>
                        <div>zase se tady trápím s Arduinem.  Potřebuji
                          v přerušení od pinu 2 u Arduino Nano poslat
                          ven dvanáct bitů.  Přerušení vyvolá vstup CS
                          od nadřízeného stroje, pak jdou hodiny asi po
                          200  uS a na jejich sestupnou hranu potřebuji
                          posílat ven data.  V podstatě mi to funguje,
                          pokud ta data, co potřebuji poslat, vytvořím
                          až v té přerušovací proceduře.  Nevím ale, jak
                          tam dostat data, která vyrobím v hlavní
                          smyčce. Deklaraci té proměnné , co chci
                          poslat, mám jako volatile unsigned integer ,
                          zkoušel jsem i volatile byte, deklaraci  mám v
                          hlavním programu ,zkoušel jsem to deklarovat i
                          v té přerušovací proceduře, ale nejsem
                          úspěšný.  Ta data se pošlou jen jednou, a
                          ještě ne celá. Pak to vypadá, že se ta data
                          nějak smažou, nebo co. Posílá to už jen nuly. 
                          Bohužel, ladící výpis tam nejde udělat. 
                          Můžete mne prosím zase nějak nakopnout ?</div>
                        <div><br clear="all">
                          <div>
                            <div dir="ltr" class="gmail_signature">Zdravi<br>
                              Jirka Sloupenský  OK1MWW</div>
                          </div>
                        </div>
                      </div>
                      <br>
                      <fieldset></fieldset>
                      <pre>_______________________________________________
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank" moz-do-not-send="true">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" rel="noreferrer" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
                    </blockquote>
                    <p><br>
                    </p>
                  </div>
                  _______________________________________________<br>
                  HW-list mailing list  -  sponsored by <a
                    href="http://www.HW.cz" rel="noreferrer noreferrer"
                    target="_blank" moz-do-not-send="true">www.HW.cz</a><br>
                  <a href="mailto:Hw-list@list.hw.cz" rel="noreferrer"
                    target="_blank" moz-do-not-send="true"
                    class="moz-txt-link-freetext">Hw-list@list.hw.cz</a><br>
                  <a href="http://list.hw.cz/mailman/listinfo/hw-list"
                    rel="noreferrer noreferrer" target="_blank"
                    moz-do-not-send="true" class="moz-txt-link-freetext">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
                </blockquote>
              </div>
              <br>
              <fieldset></fieldset>
              <pre>_______________________________________________
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank" moz-do-not-send="true">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
            </blockquote>
            <p><br>
            </p>
          </div>
          _______________________________________________<br>
          HW-list mailing list  -  sponsored by <a
            href="http://www.HW.cz" rel="noreferrer" target="_blank"
            moz-do-not-send="true">www.HW.cz</a><br>
          <a href="mailto:Hw-list@list.hw.cz" target="_blank"
            moz-do-not-send="true" class="moz-txt-link-freetext">Hw-list@list.hw.cz</a><br>
          <a href="http://list.hw.cz/mailman/listinfo/hw-list"
            rel="noreferrer" target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
        </blockquote>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-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>
  </body>
</html>