<?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=15586&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-06-16T11:35:29+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=15586&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-06-16T11:35:29+01:00</updated>
<published>2016-06-16T11:35:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162419#p162419</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162419#p162419"/>
<title type="html"><![CDATA[Re: Dekoder RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162419#p162419"><![CDATA[
No przecież tu w zależności od tego jakie jest ustawione zbocze albo wsuwamy bit 1 albo 0<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />przecież to proste maskowanie: (TCCR1B &amp; (1&lt;&lt;ICES1))<br /><br />jeśli nie wiesz co to maskowanie to obejrzyj koniecznie:<br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2014/03/maskowanie-bajtow-z-przymruzeniem-oka.html" >http://mirekk36.blogspot.com/2014/03/ma ... m-oka.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 cze 2016, o 11:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-06-16T11:02:43+01:00</updated>
<published>2016-06-16T11:02:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162417#p162417</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162417#p162417"/>
<title type="html"><![CDATA[Re: Dekoder RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162417#p162417"><![CDATA[
jeszcze prosiłbym o wyjaśnienie warunku <br />[syntax=c]if((TCCR1B &amp; (1&lt;&lt;ICES1))) IrData |= 0x0001;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 16 cze 2016, o 11:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-06-15T13:16:18+01:00</updated>
<published>2016-06-15T13:16:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162351#p162351</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162351#p162351"/>
<title type="html"><![CDATA[Re: Dekoder RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162351#p162351"><![CDATA[
<div class="quotetitle">ciscoc napisał(a):</div><div class="quotecontent"><br />linika kodu której nie rozumie<br /></div><br />Zmienna PulseWidth jak sama nazwa wskazuje - mówi nam za każdym razem ile ms trwał stan niski albo wysoki w ramce danych - przechwytujemy to wprost z rejestru ICR1 a przecież zainicjowaliśmy Timer1 w ten sposób, że jedno jego tyknięcie mówi nam dzięki makrom - że trwa to 1 ms <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Do późniejszych obliczeń zapamiętujemy jeszcze wartość ICR1 w zmiennej LastCapture (która po restarcie ma wartość = 0) a później zawsze wartość długości przedostatniego impulsu. Opisuję też to w książce. Jak chcesz lepiej zrozumieć to weź kartkę i ołówek i sam sobie rozrysuj najprostszą ramkę RC5 i staraj się po kolei sobie rysować w którym miejscu jesteś po wykonaniu przerwania i który czas bierzemy pod uwagę.<br /><br /><div class="quotetitle">ciscoc napisał(a):</div><div class="quotecontent"><br />i tutaj się pogubiłem, nie wiem czy w tym momencie jak mamy reakcję na zbocze opadające to wchodzimy do procedury obsługi przerwania ISR(TIMER1_CAPT_vect) czy do funkcji void ir_init() ?<br /></div><br />Jak można z przerwania wejść do ir_init()? no coś ty ? toż ir_init() wywołujesz TYLKO RAZ na początku programu w MAIN.C przed pętlą główną i na tym koniec<br /><br />później działasz już tylko cały czas w przerwaniu<br /><br />mówię ci - kartka/ołówek i rysowanko - mi to pomogło i wielu czytelnikom też - nawet gdy o to samo tu pytali na forum bo jakbyś dobrze poszukał do IDENTYCZNE pytania już padały na tym forum<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 cze 2016, o 13:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-06-15T11:18:42+01:00</updated>
<published>2016-06-15T11:18:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162344#p162344</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162344#p162344"/>
<title type="html"><![CDATA[Re: Dekoder RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162344#p162344"><![CDATA[
W procedurze obsługi przerwania używamy następujących zmiennych:<br />[syntax=c]static uint16_t LastCapture; //zmienna pomocnicza ale jaką ona ma wartość?, ponieważ jak dalej będziemy czytać kod jest linika w której PulseWidth = ICR1 - LastCapture obliczana jest wartość PulseWidth z wykorzystaniem zmiennej LastCapture, gdzie zmienna LastCapture jaką przyjmuje na początku wartość wartość?<br />uint16_t PulseWidth;// książka podaje że oblicza czas trwania połówki bitu<br />static uint8_t IrPulseCount;//zmienna zliczająca początki każdej połówki bitu<br />static uint16_t IrData;//zmienna 16-b która ma otrzymać wartości bitowe przesłanej ramki IR <br />static uint8_t frame_status;//zmienna pomocnicza która pilnuje porządek w procedurze obsługi dekodowania sygnału ramki IR[/syntax]<br /><br />linika kodu której nie rozumie [syntax=c]PulseWidth = ICR1 - LastCapture;// na czym polega przechwycenie przez rejestr ICR1 aby obliczyć wartość zmiennej PulseWidth<br />LastCapture = ICR1;[/syntax]<br /><br />oraz wyjaśnienia wymaga jeszcze fragment kodu <br />[syntax=c]if (rc5cnt == 0) {<br />IrData = 0;<br />IrPulseCount = 0;<br />TCCR1B |= (1&lt;&lt;ICES1);<br />rc5cnt++;<br />frame_status = FRAME_END;[/syntax]<br /><br />jeżeli licznik rc5cnt równa się =0 oznacza to że znajdujemy się na początku ramki danych w pierwszym bicie startowych na zboczu opadającym, zmienne IrData i IrPulseCount są 0, kolejny impuls sygnału jaki się spodziewamy powinien być narastający w drugim bicie startowym i w tym momencie zaczynamy zliczanie zbocz sygnału licznik rc5cnt zostaje zwiększony o jeden a status ramki przyjmuje wartość 2 czyli tak jakby ramka została odebrana. Następuje koniec procedury obsługi przerwania,  dalsze warunki if już nie wchodzimy ponieważ frame_status=FRAME_END ale licznik rc5cnt ma już wartość 1. Teraz powinniśmy spodziewać się sygnału zbocza opadającego w drugim bicie startowym .... i tutaj się pogubiłem, nie wiem czy w tym momencie jak mamy reakcję na zbocze opadające to wchodzimy do procedury obsługi przerwania ISR(TIMER1_CAPT_vect) czy do funkcji void ir_init() ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 15 cze 2016, o 11:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-06-14T13:28:04+01:00</updated>
<published>2016-06-14T13:28:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162245#p162245</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162245#p162245"/>
<title type="html"><![CDATA[Re: Dekoder RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162245#p162245"><![CDATA[
a swoją drogą kod jest obszernie objaśniony w książce, i ja rozumiem doskonale że pomimo to można się gdzieś zaciąć bo coś jest nadal niejasne dla ciebie w książce - ale co za problem dopytać np o fragment kodu, który stanowi dla ciebie problem ze zrozumieniem - można wtedy nawet taki fragmencik wkleić na forum aby podeprzeć swoje pytanie .... Pytanie też warto sprecyzować a nie DOWALIĆ cały kod i napisać żeby ci wyjaśnić ? a to znaczy, że w książce NIC ? ani jednego zdania tego obszernego opisu do kodu nie zrozumiałeś ? Czyli co ? przepisać np ja mam tutaj cały ten rozdział ? To nadal pewnie nie zrozumiesz - ... dlatego lepiej chyba SPRECYZOWAĆ swoje pytanie albo pytania do książki hmmm ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 cze 2016, o 13:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-06-14T11:38:56+01:00</updated>
<published>2016-06-14T11:38:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162235#p162235</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162235#p162235"/>
<title type="html"><![CDATA[Dekoder RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15586&amp;p=162235#p162235"><![CDATA[
Również przerabiam teraz kod dotyczący dekodera rc5 str.307 rozdział 5.12 Odbiór kodów RC5 w podczerwieni i prosiłbym o wytłumaczenie kodu pliku &quot;ir_decode.c&quot; nie potrafię go ogarnąć, nie ukrywam sprawia mi problem jego zrozumienie, miałbym prośbę do kogoś kto ma chęć wytłumaczyć linijka po linijce jak zachowuje się kod.<br /><span style="color: #FF0000"><br />[ Panie kochany na litość boską  - masz kod w książce ? to dobrze - ja też go mam, i 99% użytkowników tego forum ma ten kod to po co wklejasz kody bibliotek na forach niezgodnie z prawem autorskim zresztą - o czym mowa w stopce na pierwszej stronie redakcyjnej książki, którą masz w ręku ...<br /><br />Tym sposobem każdy udostępniłby po jednej bibliotece na forach i po co mi pisać książki ? zastanawiałeś się kiedyś nad tym ? Pomyśl o tym proszę na przyszłość za nim ochoczo opublikujesz na tym albo na innym forum kod źródłowy bibliotek z książki oK? gorąco o to proszę - mirekk36 ]</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 14 cze 2016, o 11:38</p><hr />
]]></content>
</entry>
</feed>