<div dir="ltr">Je to simulace tohoto snímače <div><br><div><a href="https://www.vk5dj.com/hh-12.html">https://www.vk5dj.com/hh-12.html</a></div><div><br></div><div>je to pro kamaráda radioamatéra, který s tím má udělaný antenní rotátor , který má ale určité vůle v převodech , takže mu to při zastavení kmitá. Cílem je číst ten snímač HH 12 ( to mi jde dobře) a do elektroniky rotátoru, která je koupená a nedá se v ní nic programovat, posílat při zastavení simulovaný údaj, který bude to kmitání potlačovat. </div><div>Úloha to je primárně jednoduchá, nedaří se mi ale úplně dobře chování toho snímače arduinem simulovat. </div><div><br></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><div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br><table style="border-top:1px solid #d3d4de"><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"><img src="https://s-install.avcdn.net/ipm/preview/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif" alt="" width="46" height="29" style="width: 46px; height: 29px;"></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">www.avast.com</a></td></tr></table><a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"></a></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">po 29. 1. 2024 v 16:04 odesílatel Jindrich Fucik <<a href="mailto:FULDA@seznam.cz">FULDA@seznam.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>Hele, čtu to dobře, že to je SPI nebo synchroní sériák?</div><div>Co tě nutí to dělat bit bankingem? Proč nepoužiješ SPI devic přímo v hardware procesoru?<br></div><div><br></div>---------- Původní e-mail ----------<br>Od: Jirka Mww <<a href="mailto:jirka.mww@gmail.com" target="_blank">jirka.mww@gmail.com</a>><br>Komu: HW-news <<a href="mailto:hw-list@list.hw.cz" target="_blank">hw-list@list.hw.cz</a>><br>Datum: 29. 1. 2024 14:08:29<br>Předmět: Re: Zase Arduino - jak dostat data do přerušení<br><blockquote><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-wrap"> </span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;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-wrap"> </span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;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-wrap">DOEXT,</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;color:rgb(211,84,0)">bitRead</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;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-wrap">TEST1,R</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;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-wrap">; 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-wrap">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-wrap">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-wrap;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-wrap">DOEXT,</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;color:rgb(211,84,0)">bitRead</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;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-wrap">TEST1,R</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;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-wrap">; 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-wrap"><br></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-wrap"><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">Zdravi<br>Jirka Sloupenský OK1MWW</div></div><br></div></div><div id="m_4710967943847360956-wm-DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br><table style="border-top:1px solid rgb(211,212,222)"><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"><img src="https://s-install.avcdn.net/ipm/preview/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif" alt="" width="46" height="29" style="width: 46px; height: 29px;"></a></td><td style="width:470px;padding-top:12px;color:rgb(65,66,78);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" style="color:rgb(68,83,234)" target="_blank">www.avast.com</a></td></tr></tbody></table><a href="#m_4710967943847360956_-wm-DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"></a></div><br><div><div dir="ltr">ne 28. 1. 2024 v 20:49 odesílatel Jaroslav Buchta <<a href="mailto:jaroslav.buchta@hascomp.cz" target="_blank">jaroslav.buchta@hascomp.cz</a>> napsal:<br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>
<div>
<div>nebo sem poslat cast zdrojaku...<br>
</div>
<div>Dne 28.01.2024 v 20:09 Jirka Mww
napsal(a):<br>
</div>
<blockquote>
<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>
<div dir="ltr">Dne ne 28. 1. 2024 19:03
uživatel Jaroslav Buchta <<a href="mailto:jaroslav.buchta@hascomp.cz" target="_blank">jaroslav.buchta@hascomp.cz</a>>
napsal:<br>
</div>
<blockquote 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>
<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">Zdravi<br>
Jirka Sloupenský OK1MWW</div>
</div>
</div>
</div>
<br>
<div></div>
<pre>_______________________________________________
HW-list mailing list - sponsored by <a href="http://www.hw.cz" rel="noreferrer" target="_blank">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" rel="noreferrer" target="_blank">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">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">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" rel="noreferrer" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote>
</div>
<br>
<div></div>
<pre>_______________________________________________
HW-list mailing list - sponsored by <a href="http://www.hw.cz" target="_blank">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">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">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div>
_______________________________________________
<br>HW-list mailing list - sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a>
<br><a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a>
<br><a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a>
<br></blockquote></div>_______________________________________________<br>
HW-list mailing list - sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div>