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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-09T11:02:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=6528&amp;mode</id>
<entry>
<author><name><![CDATA[henio]]></name></author>
<updated>2014-04-09T11:02:57+01:00</updated>
<published>2014-04-09T11:02:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=77410#p77410</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=77410#p77410"/>
<title type="html"><![CDATA[Re: Dekodowanie IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=77410#p77410"><![CDATA[
Witam ponownie! Postanowiłem spróbować z innym pilotem- niestety też space_enc, ale już trochę lepiej się przygotowałem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Uzbrojony w <a href="http://forum.atnel.pl/topic911.html"  class="postlink">http://forum.atnel.pl/topic911.html</a> ten temat wziąłem się do dzieła. Niestety, ale obecnie nie mam za bardzo wolnej gotówki na greenbooka, a też wiem, że jak uda mi się sprawić, żeby to działało to zrozumiem to raz na zawsze <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Mój pilocik przedstawia się następująco:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />begin remote<br /><br />  name  RMT-1<br />  bits           11<br />  flags SPACE_ENC<br />  eps            30<br />  aeps          100<br /><br />  header       2487   501<br />  one           686   501<br />  zero         1287   501<br />  ptrail        686<br />  gap          24671<br />  toggle_bit      0<br /><br /><br />      begin codes<br />          play                     0x0000000000000531<br />          stop                     0x0000000000000731<br />          ff                       0x0000000000000631<br />          rew                      0x0000000000000131<br />          pause                    0x0000000000000331<br />          slow                     0x00000000000001D1<br />          display                  0x0000000000000521<br />          <br />      end codes<br /><br />end remote<br /></div><br /><br />Ja to widzę tak : Nadajnik emituje header - 2487us f nosna i 501 us przerwy, a następnie od razu emituje 11 bitow klawiszy. Ja w odbiorniku odbieram to jako 501us przerwy i 2487 us nosnej, zatem zbocze wywyolujace przerwanie bedzie narastajace. Jedynka logiczna z punktu widzenia odbiornika to 501us przerwy i 686us nosnej, a logiczne zero to 501us przerwy i 1287us nosnej. Wzoruję się na kodzie z blueeboka do RC5. <br />Zatem : czekam na przerwanie przez zbocze narastajace, zwiekszam licznik i wychodze z przerwania. Jak nastepuje nastepne przerwanie to stan licznika == 1 i jestem w pierwszej polowce pierwszego bitu klawisza. Odbieram wsyzstkie bity, a wartosci logiczne przypisuje tak : sprawdzam czy jestem w drugiej polowce bitu i jeżeli tak, to sprawdzam jak dlugo emitowana jest f nosna i na tej podstawie wypelniam IrData. Po wpisaniu kazdego bitu przesuwam IrData o jedno miejsce w lewo. Po 11 bitach klawisza czekam jeszcze az odbiore 1250 us nosnej, tj ptrail. (robie to tak, ze po prostu czekam, az cos zostanie odebrane, a co za tym idzie zwiekszy sie licznik - to jest podstawa do zakonczenia odbierania.)<br />Chciałbym prosić o pomoc, bo coś jednak nie działa jak powinno - czy rozumiem to wszystko poprawnie? <br />Załączam kod jedynie obsługi przerwania, gdyż to tam występuje problem.<br /><br />[syntax=c]ISR(TIMER1_CAPT_vect)<br />{<br /><br />static uint16_t LastCapture=0;<br />uint16_t PulseWidth;<br />static uint8_t IrPulseCount;<br />static uint16_t IrData;<br />static uint16_t pre_data;<br />static uint8_t frame_status;<br />PulseWidth = ICR1 - LastCapture;<br />LastCapture = ICR1;<br />TCCR1B TOGGLE (1&lt;&lt;ICES1);//zmiana zbocza wywolujacego przerwanie<br /><br /><br />if(count&gt;0)<br />frame_status = FRAME_OK;<br />if(count ==0 || PulseWidth&gt;MAX_BIT || PulseWidth&lt;HEADER_ONE)<br />{<br />IrData = 0;<br />IrPulseCount = 0;<br />pre_data=0;<br />TCCR1B RESET (1&lt;&lt;ICES1);//wiadomo, ze nastepne zbocze bedzie opadajace<br />count++;<br />frame_status = FRAME_END;<br /><br />}<br />if(PulseWidth&gt;HEADER_ONE)<br />{<br />PORTC SET (1&lt;&lt;PC5); //wnioskuję, że tutaj program się zatrzymuje - dioda się zaświeca<br />count=0;<br />}<br />if(frame_status == FRAME_OK)<br />{<br /><br />if(PulseWidth &lt; LOW)<br />frame_status= FRAME_RESTART;<br />if(PulseWidth &gt; HEADER_ONE)<br />frame_status = FRAME_RESTART;<br />if(frame_status == FRAME_OK)<br />{<br /><br />if(count&gt; 0)<br />if((count % 2) == 0)//jesli jestem w 2 polowce bitu to sprawdzam dlugosc stanu wysokiego<br />{<br /><br />PORTC SET (1&lt;&lt;PC5);  //Tutaj program niestety nie dochodzi.<br />if((TCCR1B &amp; (1&lt;&lt;ICES1))==1)//sprawdzam, czy jest stan wysoki<br /><br />if(PulseWidth&lt;HIGH_ONE)//jedynka<br />{<br />IrData |= (1&lt;&lt;0);<br />IrPulseCount++;<br />}<br />if(PulseWidth&gt;HIGH_ONE || PulseWidth&lt;HIGH_ZERO)//zero<br />{<br />IrData |= (0&lt;&lt;0);<br />IrPulseCount++;<br />}<br />IrData = (IrData &lt;&lt; 1);<br /><br /><br />}<br />count++;<br />if(IrPulseCount &gt; 10 &amp;&amp; count&gt;22)<br />{<br />if(key_press == 0)<br />{<br />//co=IrData &amp; 0b0000111111111111;<br />//pre_data= IrData &amp; 0b0000111100000000;<br />adress=IrData &amp; 0b0000111111111110;<br />co=IrData;<br /><br />}<br />frame_status = FRAME_RESTART;<br />key_press = 1;<br /><br />}<br />}<br />}<br />if(frame_status == FRAME_RESTART)<br />{<br />count = 0;<br />TCCR1B SET (1&lt;&lt;ICES1);<br />}<br />}[/syntax]<br /><br />Jeszcze fragment pliku .h<br />[syntax=c]#define IR_PORT B<br />#define IR_PIN 0<br />#define IR_IN (1&lt;&lt;IR_PIN)<br />#define TIMER1_PRESCALER 8<br /><br />#define ir_micro_s(num) ((num)*(F_CPU/1000000)/TIMER1_PRESCALER)<br /><br />#define TOLERANCE 200<br />#define HEADER_ONE ir_micro_s(2487+TOLERANCE)<br />#define LOW ir_micro_s(501 - TOLERANCE)<br />#define HIGH_ONE ir_micro_s(686 + TOLERANCE)<br />#define HIGH_ZERO ir_micro_s(1287+TOLERANCE)<br />#define MAX_BIT ir_micro_s((1287+686) + TOLERANCE)<br /><br /><br />#define PORT(x) XPORT(x)<br />#define XPORT(x) (PORT##x)<br />#define PIN(x) XPIN(x)<br />#define XPIN(x) (PIN##x)<br />#define DDR(x) XDDR(x)<br />#define XDDR(x) (DDR##x)<br /><br />#define RESET &amp;= ~<br />#define TOGGLE ^=<br />#define SET |=<br /><br />#define PLAY    0x0000000000000531<br />#define STOP    0x0000000000000731<br />#define FORWARD 0x0000000000000631<br />#define REW     0x0000000000000131<br />#define PAUSE   0x0000000000000331<br />#define SLOW    0x00000000000001D1<br />#define DISPLAY 0x0000000000000521<br /><br />#define FRAME_RESTART 0<br />#define FRAME_OK 1<br />#define FRAME_END 2<br />#define FRAME_ERROR 3<br /><br />extern volatile uint16_t adress;<br />extern volatile uint16_t co;<br />extern volatile uint8_t key_press;<br />void ir_init();[/syntax]<br /><br />Jak to możliwe, że spełniony jest warunek PulseWidth &gt; HEADER_ONE ? <br />Patrząc na kody pilota nie widzę takiej możliwości. <br /><br />Pozdrawiam serdecznie! <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3462">henio</a> — 9 kwi 2014, o 11:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-03-28T09:46:11+01:00</updated>
<published>2014-03-28T09:46:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76122#p76122</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76122#p76122"/>
<title type="html"><![CDATA[Re: Dekodowanie IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76122#p76122"><![CDATA[
dlatego mysle ze o wiele latwiej byloby ci sie nauczyc i ruszyc z miejsca .... gdybys wzial normalny pilot rc5 i postaral sie najpierw od podszewki to zrozumiec ... mialbys tez na czym cwiczyc. Ty tymczasem wziales jakis calkiem inny pilot i to taki w ktorym nie ma zadnego TOGGLE BIT i probujesz sie go doszukac. Dlatego pisalem ze sie troszke zakreciles i podpowiadam ci jaka droga isc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 mar 2014, o 09:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[henio]]></name></author>
<updated>2014-03-28T09:31:11+01:00</updated>
<published>2014-03-28T09:31:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76119#p76119</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76119#p76119"/>
<title type="html"><![CDATA[Re: Dekodowanie IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76119#p76119"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">henio napisał(a):</div><div class="quotecontent">** Do czego on wlasciwie sluzy? Bo w kodzie z bluebooka nie widze jaka role tam odgrywa<br /></div><br /><br />A dlaczego sądzisz że miałoby to wynikać z Bluebooka ? - nie rozumiem ?</div><br /><br />Chodzi o to, że bluebook to jest w 95% źródło mojej wiedzy i wszystko opieram głównie na nim <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> I korzystam z tego kodu, zatem - nie chodzi o to, że ma to wynikać z bluebooka, ale o to, że akurat w tym konkretnym kodzie nie widziałem jaką rolę toggle bit odgrywa.<br /><br /><div class="quotetitle">henio napisał(a):</div><div class="quotecontent"><br />Ale pomyśl kto cię tam wie co ty kombinujesz w kodzie żeby odpowiedzieć na takie pytanie ? hmmm <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Kod to właściwie żywcem przepisany Pański kod  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" />  <br />[syntax=c]#include&quot;ir_decode.c&quot;<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />void ir_init()<br />{<br />DDR(IR_PORT) &amp;= ~IR_IN;//pin jako wejscie<br />PORT(IR_PORT) |= IR_IN;//podciagniecie do vcc<br /><br />#if TIMER1_PRESCALER == 1<br />TCCR1B |= (1&lt;&lt;CS10);<br />#endif<br />#if TIMER1_PRESCALER == 8<br />TCCR1B |= (1&lt;&lt;CS11);<br />#endif<br />#if TIMER1_PRESCALER == 64<br />TCCR1B |= (1&lt;&lt;CS10)|(1&lt;&lt;CS11);<br />#endif<br />#if TIMER1_PRESCALER == 256<br />TCCR1B |= (1&lt;&lt;CS12);<br />#endif<br /><br />TCCR1B &amp;= ~(1&lt;&lt;ICES1);<br />rc5cnt=0;<br /><br />TIMSK |= (1&lt;&lt;TICIE1);<br />key_press=0;<br />}<br /><br />int main(void)<br />{<br />ir_init();<br />sei();<br />DDRB |= (1&lt;&lt;PB1);<br />PORTB RESET (1&lt;&lt;PB1);<br />DDRC |= (1&lt;&lt;PC5);<br />PORTC RESET (1&lt;&lt;PC5);<br /><br />while(1)<br />{<br />if(key_press)<br />{<br />if(!adress &amp;&amp; VOLDOWN == command)<br />{<br />PORTB ^= (1&lt;&lt;PB1);<br />}<br />key_press=0;<br />command = 0xff;<br />adress=0xff;<br />}<br />}<br />}<br />ISR(TIMER1_CAPT_vect)<br />{<br />#define FRAME_RESTART 0<br />#define FRAME_OK 1<br />#define FRAME_END 2<br />#define FRAME_ERROR 3<br />static uint16_t LastCapture;<br />uint16_t PulseWidth;<br />static uint8_t IrPulseCount;<br />static uint16_t IrData;<br />static uint8_t frame_status;<br />PulseWidth= ICR1 - LastCapture;<br />LastCapture = ICR1;<br />TCCR1B TOGGLE (1&lt;&lt;ICES1);<br />PORTC SET (1&lt;&lt;PC5);<br /><br />if(PulseWidth &gt; MAX_BIT)<br />rc5cnt=0;<br />if(rc5cnt&gt;0)<br />frame_status = FRAME_OK;<br />if(rc5cnt ==0)<br />{<br />IrData = 0;<br />IrPulseCount = 0;<br />TCCR1B SET (1&lt;&lt;ICES1);<br />rc5cnt++;<br />frame_status = FRAME_END;<br /><br />}<br />if(frame_status == FRAME_OK)<br />{<br />//jezelistatus ramki = ok -&gt; restart<br />if(PulseWidth &lt; MIN_HALF_BIT)<br />frame_status= FRAME_RESTART;<br />if(PulseWidth &gt; MAX_BIT)<br />frame_status = FRAME_RESTART;<br />if(frame_status == FRAME_OK)<br />{<br />if(PulseWidth &gt; MAX_HALF_BIT)<br />rc5cnt++;<br />if(rc5cnt &gt; 1)<br />if((rc5cnt % 2) == 0)<br />{<br />IrData = IrData &lt;&lt; 1;<br />if((TCCR1B &amp; (1&lt;&lt;ICES1)))<br />IrData |= 0x0001;<br />IrPulseCount++;<br /><br />if(IrPulseCount &gt; 12)<br />{<br />if(key_press == 0)<br />{<br />command = IrData &amp; 0b0000000000111111;<br />adress = (IrData &amp; 0b0000011111000000) &gt;&gt; 6;<br />toggle_bit = (IrData &amp; 0b0000100000000000) &gt;&gt; 11;<br /><br />}<br />frame_status = FRAME_RESTART;<br />key_press = 1;<br />}<br />}<br />rc5cnt++;<br />}<br />}<br />if(frame_status == FRAME_RESTART)<br />{<br />rc5cnt = 0;<br />TCCR1B RESET (1&lt;&lt;ICES1);<br />}<br />}[/syntax]<br /><br />zarówno ir_init() jak i przerwanie mam w mainie bo miałem pewne problemy - jak były w pliku .c to wywalało mi błedy typu 'multiple declarations of...', a że chciałem się skupić bardziej na działaniu kodu, to tak to tymczasowo rozwiazalem.<br />pliki.h i .c wygladaja tak :<br />[syntax=c]#include &lt;stdint.h&gt;<br />#ifndef IR_DECODE_H_<br />#define IR_DECODE_H_<br /><br /><br />#define IR_PORT B<br />#define IR_PIN 0<br />#define IR_IN (1&lt;&lt;IR_PIN)<br />#define TIMER1_PRESCALER 64<br /><br />#define ir_micro_s(num) ((num)*(F_CPU/1000000)/TIMER1_PRESCALER)<br /><br />#define TOLERANCE 200<br />#define MIN_HALF_BIT ir_micro_s(889 - TOLERANCE)<br />#define MAX_HALF_BIT ir_micro_s(889 + TOLERANCE)<br />#define MAX_BIT ir_micro_s((889+889) + TOLERANCE)<br /><br /><br />#define PORT(x) XPORT(x)<br />#define XPORT(x) (PORT##x)<br />#define PIN(x) XPIN(x)<br />#define XPIN(x) (PIN##x)<br />#define DDR(x) XDDR(x)<br />#define XDDR(x) (DDR##x)<br /><br />#define RESET &amp;= ~<br />#define TOGGLE ^=<br />#define SET |=<br /><br />#define POWER   98<br />#define VOLDOWN 85<br />#define MUTE    250<br />#define RETURN  87<br />#define CHNEXT  218<br />#define CHPREV  88<br />#define EXIT    193<br />#define MENU    78<br />#define OK      243<br />#define UP      116<br />#define LEFT    201<br />#define RIGHT   72<br />#define DOWN    242<br /><br />extern volatile uint8_t toggle_bit;<br />extern volatile uint8_t adress;<br />extern volatile uint8_t command;<br />extern volatile uint8_t key_press;<br />void ir_init();<br /><br />#endif /* IR_DECODE_H_ */[/syntax]<br /><br />[syntax=c]#include &quot;ir_decode.h&quot;<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />volatile uint8_t toggle_bit;<br />volatile uint8_t adress;<br />volatile uint8_t command;<br />volatile uint8_t key_press;//flaga inforumje ze odebrano kod z pilota<br />volatile uint8_t rc5cnt;[/syntax]<br /><br />Pod PC5 podpieta jest ta diodka 'breakpoint'. Zaświeca się gdy naciskam guzik w pilocie, ale swieci bardzo slabo i chcialem sie dowiedziec co jest tego powodem.<br /><br /><div class="quotetitle">henio napisał(a):</div><div class="quotecontent"><br />A druga sprawa widać że kręcisz się na razie jak bączek w miejscu bo cały czas popełniasz błąd zakładając że ten pilot to RC5 ??? na jakiej podstawie pytam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />To prawda, kręcę się w miejscu... Ale to dlatego, że nie wiem jak interpretować dane z tej stronki z danymi pilotów. Moim największym problemem z nauką uC jest to, że trudno mi znaleźć odpowiedzi na moje pytania w googlach (zdarza się, że czegoś nie zrozumiem z Bluebooka i potrzebuję czasem coś sobie rozjaśnić w głowie) i często błądzę po omacku. Ale nie poddaję się i walczę z nadzieją, że kiedyś się odwdzięczę temu forum pomagając innym użytkownikom <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />W tej sytuacji pozostaje mi tylko odwołać się do greenbooka w sprawie tego pilota <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3462">henio</a> — 28 mar 2014, o 09:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-03-28T00:35:47+01:00</updated>
<published>2014-03-28T00:35:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76107#p76107</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76107#p76107"/>
<title type="html"><![CDATA[Re: Dekodowanie IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76107#p76107"><![CDATA[
skoro twój pilot ma pre_data_bits to skąd ci przychodzi do głowy że to pilot nadający w standardzie RC5 ? <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><div class="quotetitle">henio napisał(a):</div><div class="quotecontent"><br />** Do czego on wlasciwie sluzy? Bo w kodzie z bluebooka nie widze jaka role tam odgrywa<br /></div><br /><br />A dlaczego sądzisz że miałoby to wynikać z Bluebooka ? - nie rozumiem ?<br /><br /><div class="quotetitle">henio napisał(a):</div><div class="quotecontent"><br />Nie potrafię tego zinterpretować. Jako pre_data bym rozumiał to, co stoi przed adresem i komenda, ale co to w takim razie jest? Tyle bitów startu ? Czy &quot; bits 8&quot; oznacza, ze ramka ma 8 bitów? Dziwne, bo tu juz niektore adresy tyle maja.<br /></div><br /><br />Takie rzeczy to szeroko opisane są w drugiej książce czyli Greenbooku i jak dekodować różne piloty a także jak intepretować dane z lirc.org<br /><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 /><div class="quotetitle">henio napisał(a):</div><div class="quotecontent"><br />Wymyśliłem sobie, że w ramach breakpointów będę zapalał diodki(jestem bardzo dumny z tego pomysłu!  ) I tutaj mam zonka. Chcąc sprawdzić (tak przynajmniej śladowo) czy dobrze podłączyłem odbiornik (schemat z bluebooka) zrobiłem zapalanie diodki (zaraz na poczatku przerwania). I tu ciekawe (przynajmniej dla mnie) - jak robie to zwyklym ORem to dioda swieci, ale bardzo slabo. O co chodzi? Dioda podpieta anoda do uC i rezystorem do masy<br /></div><br /><br />Ale pomyśl kto cię tam wie co ty kombinujesz w kodzie żeby odpowiedzieć na takie pytanie ? hmmm <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> A druga sprawa widać że kręcisz się na razie jak bączek w miejscu bo cały czas popełniasz błąd zakładając że ten pilot to RC5 ??? na jakiej podstawie pytam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... toż w opisie w linku który podałeś masz jak byk napisane:<br /><br />flags SPACE_ENC<br /><br />czyli kodowanie typu SPACE - co nie ma NIC a NIC wspólnego z RC5. Tak jak mówię o rodzajach kodowania możesz się dowiedzieć sporo z Greenbooka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 mar 2014, o 00:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[henio]]></name></author>
<updated>2014-03-27T22:52:41+01:00</updated>
<published>2014-03-27T22:52:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76088#p76088</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76088#p76088"/>
<title type="html"><![CDATA[Dekodowanie IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6528&amp;p=76088#p76088"><![CDATA[
Witam!<br /><br />Zgłębiam aktualnie odmęty podczerwieni <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> I mam parę pytań.<br />Korzystam z bluebooka i widze, ze kazda ramka rc5 jest 14bitowa :<br />2 start bity, Toggle**, 5 bitow adresu i 6 komendy.<br />Pilot, jakiego postanowiłem użyć (akurat jego mam względnie 'wolnego') to <br /><a href="http://lirc.sourceforge.net/remotes/thomson/RC111TA1G"  class="postlink">http://lirc.sourceforge.net/remotes/thomson/RC111TA1G</a><br />ten model. <br /><br />** Do czego on wlasciwie sluzy? Bo w kodzie z bluebooka nie widze jaka role tam odgrywa.<br /><br />To, czego nie rozumiem i nie umiem znaleźć odpowiedzi to  : <br />pre_data_bits   4<br />toggle_bit      5<br />bits            8<br />pre_data       0xC czyli 1100<br />Nie potrafię tego zinterpretować. Jako pre_data bym rozumiał to, co stoi przed adresem i komenda, ale co to w takim razie jest? Tyle bitów startu ? Czy &quot; bits    8&quot; oznacza, ze ramka ma 8 bitów? Dziwne, bo tu juz niektore adresy tyle maja. <br />Nie wiem jak sie do tego zabrać, a nie umiem znalezc potrzebnych informacji. Gdzieś wyczytałem, że ten pilot nadaje w standardzie RC4. Czy to prawda?<br /><br />Druga sprawa, bardziej jako ciekawostka dla mnie :<br />W ramach debugowania zrobiłem sobie pomocniczą diodkę. Jako, że z programowaniem miałem niejednokrotnie do czynienia to brak jakiejś takiej fizycznej możliwości sprawdzenia co się tam w środku dzieje z tymi moimi zmiennymi sprawia, że bywam bezradny. Wymyśliłem sobie, że w ramach breakpointów będę zapalał diodki(jestem bardzo dumny z tego pomysłu! <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> ) I tutaj mam zonka. Chcąc sprawdzić (tak przynajmniej śladowo) czy dobrze podłączyłem odbiornik (schemat z bluebooka) zrobiłem zapalanie diodki (zaraz na poczatku przerwania). I tu ciekawe (przynajmniej dla mnie) - jak robie to zwyklym ORem to dioda swieci, ale bardzo slabo. O co chodzi? Dioda podpieta anoda do uC i rezystorem do masy.<br /><br />Załączam zdjecia plytki. <br />Z góry dziękuję za poświęcony czas i przepraszam za trywialne pytania <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Ta czerwona diodka to 'breakpoint', zolta ma sie zaswiecac po wcisnieciu odpowiedniego guzika.<br />W ogóle to zauwazylem, ze jak przypadkiem zwarlem nozke zoltego leda do rezystora ktory go podciaga pod mase to 'breakpoint' zaswieca sie. (To akurat juz po zmianie kodu, zamiast ORa mam XORa)<br /><br /><img src="http://forum.atnel.pl/_obrazki/o/thumb/3462/e680c535a0e8d74d4ab64802f621a721.jpg" alt="Obrazek" /><br /><img src="http://forum.atnel.pl/_obrazki/o/thumb/3462/bc89ca9c1c4df94fbf999cd3202a1f6a.jpg" alt="Obrazek" /><br /><img src="http://forum.atnel.pl/_obrazki/o/thumb/3462/00a1a1b18c95ca75f9da8d8ca59cc10e.jpg" alt="Obrazek" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3462">henio</a> — 27 mar 2014, o 22:52</p><hr />
]]></content>
</entry>
</feed>