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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-03-30T18:06:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11220&amp;mode</id>
<entry>
<author><name><![CDATA[carlos]]></name></author>
<updated>2015-03-30T18:06:11+01:00</updated>
<published>2015-03-30T18:06:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125094#p125094</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125094#p125094"/>
<title type="html"><![CDATA[Re: Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125094#p125094"><![CDATA[
No tak ale mam jeszcze pilot do RC5 więc chciałbym spróbować na takim a potem wchodzić w inne standardy.<br />Uważam że mówienie na ty ułatwi komunikację jeżeli wam się to niepodoba to to zmienie. <br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Druga sprawa, to to, że nie oczekuj, że ludzie będą wertowali jakieś sto linijek Twojego kodu (no chyba że dobrze to wszystko opiszesz).<br /></div><br />No cóż jestem tylko początkującym i natknąłem się na problem dlatego proszę o pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8766">carlos</a> — 30 mar 2015, o 18:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[j23]]></name></author>
<updated>2015-03-30T14:48:44+01:00</updated>
<published>2015-03-30T14:48:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125066#p125066</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125066#p125066"/>
<title type="html"><![CDATA[Re: Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125066#p125066"><![CDATA[
<div class="quotetitle">carlos napisał(a):</div><div class="quotecontent"><br />A skąd ty wziołeś ten cytat przecież ja proszę o pomoc więc z kąd masz ten cytat<br /></div><br />Kolego Carlos, wiesz co?.. Tutaj na forum panuje taka zasada wzajemnego szacunku - zwłaszcza do osób, które chcesz poprosić o pomoc. W związku z tym staraj się zwracać do innych osób (zwłaszcza bardziej doświadczonych od Ciebie) per Kolego, Panie Kolego etc. a nie per &quot;ty&quot;. To jest niby drobiazg, ale wierz mi strasznie wnerwiający. Formułując prośby w ten sposób, że rzucasz kod i oczekujesz, że ludzie wręcz rzucą się żeby zaraz zabrać się za niego podczas gdy Ty nawet nie starasz się być odrobinę miły i uprzejmy może odnieść odwrotny skutek do tego zamierzonego przez Ciebie. Za parę lat Ty będziesz tego samego oczekiwał od młodszych od siebie - zapewniam. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Druga sprawa, to to, że nie oczekuj, że ludzie będą wertowali jakieś sto linijek Twojego kodu (no chyba że dobrze to wszystko opiszesz). Generalnie stosuj zasadę, że jeśli nie wiesz jak działa jakiś fragment to o ten fragment się pytasz, a nie ładujesz cały kod jak leci, a my tutaj jak darmowe ludzkie debugger'y mamy powiedzieć Ci co jest nie tak. Nie tędy droga.<br /><br />Acha... Sprawy o które pytasz wielokrotnie poruszane są w Blue Book'u (BB) i Green Book'u (GB). W BB jest DOKŁADNIE wyjaśnione to o co pytasz i jest tam bardzo eleganckie wprowadzenie do korzystania z transmisji IR. Jest to także wyjaśnione, w którymś poradniku Pana Mirka na YouTube, ale nie pamiętam dokładnie w którym.<br /><br />Pozdrawiam! j23 Jarek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4504">j23</a> — 30 mar 2015, o 14:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-03-30T14:23:33+01:00</updated>
<published>2015-03-30T14:23:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125063#p125063</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125063#p125063"/>
<title type="html"><![CDATA[Re: Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125063#p125063"><![CDATA[
<div class="quotetitle">carlos napisał(a):</div><div class="quotecontent"><br />A skąd ty wziołeś ten cytat przecież ja proszę o pomoc więc z kąd masz ten cytat<br /></div><br /><br />Może przeczytaj dokładniej co napisałem wyżej - to nie był żaden twój cytat<br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />ale niestety na pytania typu:<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 mar 2015, o 14:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[carlos]]></name></author>
<updated>2015-03-30T14:21:46+01:00</updated>
<published>2015-03-30T14:21:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125062#p125062</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125062#p125062"/>
<title type="html"><![CDATA[Re: Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125062#p125062"><![CDATA[
A skąd ty wziołeś ten cytat przecież ja proszę o pomoc więc z kąd masz ten cytat<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8766">carlos</a> — 30 mar 2015, o 14:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-03-29T22:28:14+01:00</updated>
<published>2015-03-29T22:28:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125018#p125018</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125018#p125018"/>
<title type="html"><![CDATA[Re: Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125018#p125018"><![CDATA[
<div class="quotetitle">carlos napisał(a):</div><div class="quotecontent"><br />Ten kod mi nie działa jest to kod do obsługi pilota RC5 proszę o pomoc.<br /></div><br />A co to ma wspólnego z tym o co pytałeś wcześniej kolego &quot;karl&quot; ? Nie żebym nie chciał pomóc - bo jak widzisz pomimo wszystko staram się ale niestety na pytania typu:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />&quot;macie tu kod źródłowy - i napiszcie mi gdzie jest błąd bo nie działa&quot;<br /></div><br /><br />niestety ja wymiękam ... więc może ew ktoś inny, kto będzie miał troszkę czasu na analizę pomoże<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 mar 2015, o 22:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[carlos]]></name></author>
<updated>2015-03-29T21:00:32+01:00</updated>
<published>2015-03-29T21:00:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125011#p125011</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125011#p125011"/>
<title type="html"><![CDATA[Re: Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125011#p125011"><![CDATA[
Ten kod mi nie działa jest to kod do obsługi pilota RC5 proszę o pomoc.<br /><br />RC5.c<br />[syntax=c]//Załączenie pliku nagłówkowego<br />#include&quot;RC5.h&quot;<br /><br />//Deklaracje zmiennych wykorzystywanych w przerwaniu i funkcjach<br />volatile uint8_t flag_collection;<br />volatile uint8_t address;<br />volatile uint8_t command;<br />volatile uint8_t counter;<br /><br />//Wskaźnik który będzie przechowywał naszą funkcje do obsługi podczerwieni<br />static void (*indicator)(uint8_t address,uint8_t command,uint8_t counter);<br /><br />//Funkcja która wpisze do wskaźnika naszą funkcje do obsługi podczerwieni<br />void CALLBACK(void (*function)(uint8_t address,uint8_t command,uint8_t counter))<br />{<br />indicator=function;<br />}<br /><br />//Zdarzenie które wykryje nadleciałą ramkę z pilota oraz wywoła naszą funkcję poprzez wskaźnik<br />void EVENT(void)<br />{<br />//Jeżeli wykryto poprawną ramkę to wykona się zdarzenie<br />if(flag_collection)<br />{<br />//Jeżeli funkcja jest zarejestrowana poprzez funkcje CALLBACK to wtedy wywołujemy naszą funkcje<br />if(indicator) (*indicator)(address,command,counter);<br /><br />//Wyzerowanie flagi odbioru kodów podczerwieni<br />flag_collection=0;<br />}<br />}<br /><br />//Funkcja inicjalizująca<br />void INITIALIZATION(void)<br />{<br />//Podciągnięcie pinu IR do VCC<br />PORT_IR|=(1&lt;&lt;PIN_IR);<br /><br />//Ustawienie preskalera na 8<br />TCCR1B|=(1&lt;&lt;CS11);<br /><br />//Reakcja przerwania na zbocze opadające<br />TCCR1B&amp;=~(1&lt;&lt;ICES1);<br /><br />//Odblokowanie przerwania<br />TIMSK|=(1&lt;&lt;TICIE1);<br />}<br /><br />//Przerwanie ICP<br />ISR(TIMER1_CAPT_vect)<br />{<br />//Definicja statusu<br />static uint8_t STATUS=1;<br /><br />//Definicja bufora na znaki<br />static uint16_t buffer;<br /><br />//Definicja licznika bitów<br />static uint8_t counter_bits;<br /><br />//Definicja licznika zboczy<br />static uint8_t meter;<br /><br />//Definicja zmiennych do obsługi bitu toggle<br />uint8_t toggle_bit;<br />static uint8_t previous_bit;<br /><br /><br />//Jeżeli wystąpił błąd to zerujemy bufor i zmienne oraz ustawiamy status na jeden<br />if(STATUS==VARIABLE)<br />{<br />meter=0;<br />counter_bits=0;<br />buffer=0;<br /><br />STATUS=1;<br />}<br /><br />//Powołanie zmiennej która przechowuje długość impulsu<br />uint16_t pulse_length;<br />static uint16_t previous_length;<br /><br />//Zbadanie szerokości impulsu<br />pulse_length=TCNT1-previous_length;<br />previous_length=TCNT1;<br /><br />//Zmiana zbocza wyzwalającego przerwanie na przeciwne<br />TCCR1B^=(1&lt;&lt;ICES1);<br /><br />//if(meter)<br />//{<br />////Sprawdzanie długości impulsów z pominęciem pierwszego<br />//if(pulse_length&gt;bit+tolerance) STATUS=VARIABLE;<br />//if(pulse_length&lt;half_bit-tolerance) STATUS=VARIABLE;<br />//}<br />//<br />//if(counter_bits==2 &amp;&amp; STATUS)<br />//{<br />////Sprawdzenie bitów startowych<br />//if(!(buffer&amp;0x0003))<br />//{<br />//STATUS=VARIABLE;<br />//}<br />//}<br /><br />//Jeżeli impulsy się zgadzają przechodzimy do dalszej analizy<br />if(STATUS)<br />{<br />//Jeżeli impuls jest większy niż połowa bitu to zwiększamy licznik zboczy o jeden<br />if(pulse_length&gt;half_bit+tolerance) meter++;<br /><br />//Trafianie w środek każdego bitu za pomocą modulo<br />if(!(meter%2))<br />{<br />//Badanie zbocza każdego bitu<br />buffer&lt;&lt;=1;<br />if(TCCR1B&amp;(1&lt;&lt;ICES1)) buffer|=0x0001;<br />counter_bits++;//Zwiększanie licznika bitów o jeden<br />}<br />}<br /><br />//Jeżeli odebrano 14 bitów to wyłuskujemy adres komendę oraz licznik ramek<br />if(counter_bits==14)<br />{<br />address=(buffer&gt;&gt;8)&amp;(0b0000000000011111);<br />command=(buffer&gt;&gt;2)&amp;(0b0000000000111111);<br />toggle_bit=(buffer&gt;&gt;13)&amp;(0b0000000000000001);<br /><br />//Sprawdzanie czy wciąż wciśnięty jest klawisz na pilocie<br />if(toggle_bit==previous_bit) counter++;<br />else counter=0;<br /><br />    previous_bit=toggle_bit;//Przypisanie poprzedniego bitu toggle<br /><br />flag_collection=1;//Ustawienie flagi odbioru na jeden<br />STATUS=VARIABLE;//Rozpoczęcie dekodowania kolejnych ramek od nowa<br />}<br /><br />//Reakcja przerwania na zbocze opadające<br />if(STATUS==VARIABLE) TCCR1B&amp;=~(1&lt;&lt;ICES1);<br /><br />//Inkrementacja o jeden zmiennej liczącej przerwania<br />meter++;<br /><br />//Wyzerowanie licznika<br />TCNT1=0;<br />}[/syntax]<br /><br />RC5.h<br />[syntax=c]#ifndef ODBIORNIK_H_<br />#define ODBIORNIK_H_<br /><br />//Załączenie plików bibliotecznych<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br /><br />//Ustawienie pinu IR<br />#define PORT_IR PORTD<br />#define PIN_IR PD6<br /><br />//Sprowadzenie częstotliwości do stałej wartości<br />#define quartz_bars(value) (value)*(F_CPU/1000000UL/8)<br /><br />//Ustawienie charakterystycznych czasów dla standardu RC5<br />#define half_bit quartz_bars(889)<br />#define bit quartz_bars(1778)<br /><br />#define tolerance quartz_bars(400)<br /><br />//Deklaracje funkcji<br />void CALLBACK(void (*function)(uint8_t address,uint8_t command,uint8_t counter));<br />void EVENT(void);<br />void INITIALIZATION(void);<br /><br />//Deklaracja funkcji do obsługi podczerwieni<br />void funkcja_1(uint8_t address,uint8_t command,uint8_t counter);<br /><br />//Definicja błędu dla statusu<br />#define VARIABLE 0<br /><br />//Definicje upraszczające dostęp do pinów na danym porcie<br />#define INPUT(DDR,PIN) DDR|=(1&lt;&lt;PIN)<br />#define OUTPUT(DDR,PIN) DDR&amp;=~(PIN)<br /><br />#define HIGH(PORT,PIN) PORT|=(1&lt;&lt;PIN)<br />#define LOW(PORT,PIN) PORT&amp;=~(1&lt;&lt;PIN)<br /><br />#endif /* ODBIORNIK_H_ */[/syntax]<br /><br />main.c<br />[syntax=c]/*<br /> * main.c  <br /> *<br /> *  Created on: 18-03-2015<br /> *      Author:Karol Biskup<br /> */<br /><br />//Załączenie pliku nagłówkowego<br />#include&quot;RC5/RC5.h&quot;<br /><br />//Główna funkcja programu<br />int main(void)<br />{<br />DDRC=0xff;<br /><br />//Funkcja inicjalizująca<br />INITIALIZATION();<br /><br />//Zarejestrowanie funkcji wywoływanej przez zdarzenie<br />CALLBACK(funkcja_1);<br /><br />sei();//Odblokowanie przerwań<br /><br />while(1)<br />{<br />EVENT();//Wywołanie zdarzenia reagującego na kody z pilota<br />}<br />}<br /><br />//Ciało funkcji obsługującej nadlatujące ramki z pilota<br />void funkcja_1(uint8_t address,uint8_t command,uint8_t counter)<br />{<br />/*<br />address-Wskazuje adres który wysyła pilot<br />command-Wskazuje komende którą wysyła pilot<br />counter-Wskazuje na ramkę którą wysyła pilot przy wciśniętym klawiszu<br /><br />INPUT(PORT,PIN)-Ustawia pin na danym porcie jako wejście<br />OUTPUT(PORT,PIN)-Ustawia pin na danym porcie jako wyjście<br /><br />HIGH(PORT,PIN)-Ustawia pin na danym porcie w stan wysoki<br />LOW(PORT,PIN)-Ustawia pin na danym porcie w stan niski<br />*/<br /><br />if(command==2) PORTC|=(1&lt;&lt;PC7);<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8766">carlos</a> — 29 mar 2015, o 21:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-03-29T20:06:12+01:00</updated>
<published>2015-03-29T20:06:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125006#p125006</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125006#p125006"/>
<title type="html"><![CDATA[Re: Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125006#p125006"><![CDATA[
<div class="quotetitle">carlos napisał(a):</div><div class="quotecontent"><br />A czy jak na takim pilocie wcisne 1 to czy komenda będzie równa 1 czy nie.<br /></div><br />Panie ... ale powiedz mi co to ZA RÓŻNICA <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ??? bo kompletnie nie rozumiem w czym rzecz ?<br /><br />np w RC5 tak jest, ale już w Sony inaczej w JVC inaczej a jak wiesz rodzajów pilotów są miliony - więc może być jeszcze milion innych kombinacji <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Masz dekoder to sprawdź sobie ile bitów przylatuje w ramce i porównaj sobie je po kolei względem jednego klawisza np ZERO. A wartość nawet jeśli dla klawisza 1 będzie wynosiła np 0xf3 to co ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Jak będziesz robił sobie odbiornik to przecież opiszesz sobie że nadlatujący kod 0xf3 to właśnie klawisz 1 na pilocie .... no widzisz gdzieś tu problem ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 mar 2015, o 20:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[carlos]]></name></author>
<updated>2015-03-29T20:00:59+01:00</updated>
<published>2015-03-29T20:00:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125005#p125005</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125005#p125005"/>
<title type="html"><![CDATA[Re: Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125005#p125005"><![CDATA[
Dzięki Mirek ale na tej stroni nie ma mojego pilota.<br />A czy jak na takim pilocie wcisne 1 to czy komenda będzie równa 1 czy nie.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />Dzięki Mirek ale na tej stronie nie ma mojego pilota.<br />A czy jak na takim pilocie wcisne 1 to czy komenda będzie równa 1 czy nie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8766">carlos</a> — 29 mar 2015, o 20:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-03-29T19:43:06+01:00</updated>
<published>2015-03-29T19:43:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125002#p125002</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125002#p125002"/>
<title type="html"><![CDATA[Re: Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=125002#p125002"><![CDATA[
Po pierwsze można próbować sprawdzić na <!-- w --><a class="postlink" href="http://www.lirc.org" >www.lirc.org</a><!-- w --><br />Po drugie naciskaj po kolei klawisze i zanotuj bity które się zmieniają w ramce, to wszystko - coś jeszcze ci potrzeba ? Do czego będzie ci np potrzebny wtedy adres skoro będzie on np stały ? <br />Po trzecie rodzajów kodowania jest mnóstwo i nie we WSZYSTKICH są i bity adresu i bity danych, w wielu są np tylko bity danych ...<br /><br />Sporo na ten temat możesz poczytać w Greenbooku<br /><!-- m --><a class="postlink" href="http://atnel.pl/jezyk-c-pasja-programowania.html" >http://atnel.pl/jezyk-c-pasja-programowania.html</a><!-- m --><br /><br />szczerze polecam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 mar 2015, o 19:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[carlos]]></name></author>
<updated>2015-03-29T19:28:10+01:00</updated>
<published>2015-03-29T19:28:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=124999#p124999</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=124999#p124999"/>
<title type="html"><![CDATA[Podczerwien]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11220&amp;p=124999#p124999"><![CDATA[
Witam wszystkich jestem nowym użytkownikiem. Mam taki problem ponieważ mam pewien pilot wiem jaki ma standard ale niewiem ile ma bitów komendy a ile bitów adresu. Mam też program Mirka do oglądania przebiegów dla danego pilota. Ale jak ma się dowiedzieć ile bitów adresu a ile komendy generuje dany pilot.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8766">carlos</a> — 29 mar 2015, o 19:28</p><hr />
]]></content>
</entry>
</feed>