<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=14388&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-02-03T07:48:47+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=14388&amp;mode</id>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2016-02-03T07:48:47+01:00</updated>
<published>2016-02-03T07:48:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152509#p152509</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152509#p152509"/>
<title type="html"><![CDATA[Re: Pomiar długości impulsu w kodzie RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152509#p152509"><![CDATA[
Faktycznie  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br />Doby jest sposób z kalkulatorem. Tak też czułem pod skórą, że coś tu będzie związane z tym, że PulseWidth jest uint16 a nie int16.<br />Ciekawie ile jeszcze takich zagadek się kryje w C.  <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Przeglądałem zawartość przerwania ICP i nigdzie nie mogłem znaleźć wspomnianego kasowania rejestru, więc coś musiało być innego.<br />Skoro to mam już wyjaśnione to &quot;idę dalej&quot;, moim celem nie jest obsługa RC5 tylko pomiar szerokości impulsu.<br /><br />Dziękuję koledzy za pomoc, <strong>jacekk232</strong> bardzo pomocny był link do Twoich wyjaśnień.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 3 lut 2016, o 07:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2016-02-03T01:16:12+01:00</updated>
<published>2016-02-03T01:16:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152506#p152506</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152506#p152506"/>
<title type="html"><![CDATA[Re: Pomiar długości impulsu w kodzie RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152506#p152506"><![CDATA[
Przeczytaj najpierw ten temat <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic5609.html" >topic5609.html</a><!-- l --><br /><br /><div class="quotetitle">Tom277 napisał(a):</div><div class="quotecontent"><br />Zastanawia mnie co będzie gdy po kolejnych impulsach pierwsze &quot;otwierające&quot; zbocze kolejnego z rzędu impulsu będzie w chwili gdy np ICP1 = 65100. W tedy do LastCapture zostanie również przepisana wartość 65100. Drugie zbocze &quot;zamykające&quot; impuls wystąpi już po przewinięciu rejestru który będzie wynosił np ICP1 = 365 i co w tedy?<br /></div><br /><br />Wtedy procek podstawi do wzoru odpowiednie wartości i wyjdzie mu wynik równy 801.<br /><br />Można to sobie policzyć np. używając windowsowego kalkulatora przełączonego na widok programisty.<br />Jeśli ICP1 = 365 a LastCapture = 65100 to 365 - 65100 = -64735.<br /><br />Liczba -64735 w kodzie uzupełnień do dwóch (U2) wygląda tak 0b11111111 11111111 00000011 00100001.<br />Nas interesują dwa młodsze bajty 0b00000011 00100001. I taka wartość ostatecznie wyląduje w zmiennej PulseWidth. Ta wartość w postaci dziesiętnej to właśnie 801.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 3 lut 2016, o 01:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-02-02T22:50:14+01:00</updated>
<published>2016-02-02T22:50:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152496#p152496</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152496#p152496"/>
<title type="html"><![CDATA[Re: Pomiar długości impulsu w kodzie RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152496#p152496"><![CDATA[
<div class="quotetitle">Tom277 napisał(a):</div><div class="quotecontent"><br />Zastanawia mnie co będzie gdy po kolejnych impulsach pierwsze &quot;otwierające&quot; zbocze kolejnego z rzędu impulsu będzie w chwili gdy np ICP1 = 65100. W tedy do LastCapture zostanie również przepisana wartość 65100. Drugie zbocze &quot;zamykające&quot; impuls wystąpi już po przewinięciu rejestru który będzie wynosił np ICP1 = 365 i co w tedy?<br /></div><br />Po co się zatrzymałeś i się zastanawiasz, przeprowadź dalej tak samo obliczenia ... Niektórzy się tu zatrzymują i wymyślają takie rzeczy jak jakieś resetowanie  ICP które by w niczym nie pomogło ... A nie ma żadnego resetowania ISP, ot przekręca się sam i liczy od zera <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Mówię podstaw sobie tak jak to liczysz liczby i leć dalej bo dobrze myślisz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i wszystko ci wyjdzie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 lut 2016, o 22:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2016-02-02T22:36:06+01:00</updated>
<published>2016-02-02T22:36:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152495#p152495</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152495#p152495"/>
<title type="html"><![CDATA[Pomiar długości impulsu w kodzie RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14388&amp;p=152495#p152495"><![CDATA[
Witam<br />Mam pytanie. Analizuję kod obsługi RC5 z BB, zastanawia mnie jak mierzona jest długość impulsu w chwili gdy rejestr ICP1 jest w okolicach przepełnienia. Nie wiem czy dobrze to rozumiem, stąd moje pytanie. Ja rozumiem działanie kodu w ten sposób. Timer1 non-stop zlicza impulsy 1us w momencie wystąpienia zbocza opadającego zapamiętywana jest wartość rejestru ICP1 do zmiennej PulseWidth np 1000 minus LastCapture. Gdy impuls jest jako pierwszy to LastCapture jest = 0. <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">PulseWidth = ICR1 - LastCapture;<br />LastCapture = ICR1;<br /></div><br /><br />więc PulseWidth = 1000, a LastCapture również = 1000.<br />Następnie przełączana jest reakcja na zbocze. Przy wystąpieniu przeciwnego zbocza ponownie obliczana jest wartość PulseWidth które teraz równa się  PulseWidth = ICR1 (np 1800) - LastCapture(poprzednio1000) czyli PulseWidth = 800, a LastCapture = 1800.<br />Zgadza się?<br /><br />Zastanawia mnie co będzie gdy po kolejnych impulsach pierwsze &quot;otwierające&quot; zbocze kolejnego z rzędu impulsu będzie w chwili gdy np ICP1 = 65100.  W tedy do LastCapture zostanie również przepisana wartość 65100. Drugie zbocze &quot;zamykające&quot; impuls wystąpi już po przewinięciu rejestru który będzie wynosił np ICP1 = 365 i co w tedy?<br />Czy rejestr ICP jest w którymś momencie resetowany żeby się nie przewinął?<br />Zdaję sobie sprawę, że coś źle rozumuję bo kod dział znakomicie, dlatego proszę naprowadźcie mnie na &quot;właściwe tory&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 2 lut 2016, o 22:36</p><hr />
]]></content>
</entry>
</feed>