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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-08-25T08:02:53+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=21176&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-08-25T08:02:53+01:00</updated>
<published>2018-08-25T08:02:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21176&amp;p=210994#p210994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21176&amp;p=210994#p210994"/>
<title type="html"><![CDATA[Re: Dekoder IR, konwersja uint32_t do uint16_t]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21176&amp;p=210994#p210994"><![CDATA[
fajne drzewko <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 sie 2018, o 08:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tded]]></name></author>
<updated>2018-08-25T00:52:21+01:00</updated>
<published>2018-08-25T00:52:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21176&amp;p=210993#p210993</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21176&amp;p=210993#p210993"/>
<title type="html"><![CDATA[Dekoder IR, konwersja uint32_t do uint16_t]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21176&amp;p=210993#p210993"><![CDATA[
Witam,<br /><br />stworzyłem sobie dekoder pilota IR, nie znalazłem gotowej biblioteki to sobie sam napisałem, chętnie poczytam co w niej mogę zmienić.<br />Ale pytanie jest inne, otóż, odbieram sobie z tego dekodera 0 i 1 no i muszę je jakoś wpisać w odpowiednie miejsce w zmienną uint32_t ale nie do końca wiem jak to zrobić... No i dopatrzyłem się, że starsze 16bitów z pilota są zawsze takie same i wpadłem na pomysł, by sobie je uciąć, bo po co mi one, i tu kolejne pytanie, jak to przepisać ucinając te starsze bity.<br /><br />Poniżej doklejam oscylogram i to co dekoduje mi programik.<br /><br /><a href="https://obrazkiforum.atnel.pl/11086/ce971ff54f2de3ea56368a8d7e10ae89.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/11086/ce971ff54f2de3ea56368a8d7e10ae89.png" alt="Obrazek" /></a><br />Żółty oscylogram to wyjście z diody IR 1838.<br />Niebieski, to dioda sygnalizująca odczyt, i taka tam do debugowania...<br /><br />To dekoduje mi program:<br />[syntax=c]Start SLO SHI 0000000011111101 1001001001101101 STOP[/syntax]<br /><br />Tu powciskałem inne klawisze na pilocie, widać co jest stałe a co nie:<br />[syntax=c]Start SLO SHI 00000000111111011001001001101101 STOP<br />Start SLO SHI 00000000111111010100000010111111 STOP<br />Start SLO SHI 00000000111111011100000000111111 STOP<br />Start SLO SHI 00000000111111010010000011011111 STOP<br />Start SLO SHI 00000000111111011010000001011111 STOP<br />Start SLO SHI 00000000111111010110000010011111 STOP<br />Start SLO SHI 00000000111111011110000000011111 STOP<br />Start SLO SHI 00000000111111010001000011101111 STOP<br />Start SLO SHI 00000000111111011001000001101111 STOP[/syntax]<br />Start wysyłam gdy znajdę na pinie stan niski, załączam też przerwania, i dalej już dekodowanie na przerwaniach... <br /><br />[syntax=c]ISR(INT0_vect){<br />if(TimerCounter != 0){<br />if(TimerCounter&lt;15)uart_puts(&quot;0&quot;); else<br />if(TimerCounter&lt;25)uart_puts(&quot;1&quot;); else<br />if(TimerCounter&lt;55)uart_puts(&quot;SHI &quot;); else<br />if(TimerCounter&lt;95)uart_puts(&quot;SLO &quot;);<br />TimerCounter=0;<br />}<br />}<br /><br />ISR (TIMER0_COMPA_vect)<br />{<br />  if(flaga_TimerStart==1)TimerCounter++;//+100us<br />}<br /><br /><br />void test(void){<br />uart_puts(&quot;TEST&quot;);<br /><br />EICRA = 0x03;// rosnące zbocze<br />EIMSK = (1&lt;&lt;INT0);<br />// ########################<br /><br />TCCR0A |= (1 &lt;&lt; WGM01);                      // Set the Timer Mode to CTC<br />OCR0A = 24;                             // Set 24 as value to count to<br />TIMSK0 |= (1 &lt;&lt; OCIE0A);                     //Set the ISR COMPA vector<br />TCCR0B |= (1 &lt;&lt; CS00) | (1 &lt;&lt; CS01) ;    // set pre-scaler to 64 and start the timer<br />TimerCounter = 0 ;<br /><br />sei();<br /><br />while(1){<br />if((~PIND &amp; (1&lt;&lt;IR)) &amp;&amp; flaga_IRStart==0){flaga_IRStart=1; uart_puts(&quot;Start &quot;); PORTB |= (1&lt;&lt;LED); flaga_TimerStart=1; sei(); }<br /><br />if(TimerCounter &gt; 120){<br />flaga_IRStart=0;<br />flaga_TimerStart=0;<br />TimerCounter=0;<br />flaga=3;<br />PORTB &amp;= ~(1&lt;&lt;LED);<br />cli();<br />}<br /><br />if(flaga==3){<br />uart_puts(&quot; STOP\n&quot;);<br />_delay_ms(2000);          //By nie klikać zbyt często...<br />flaga=0;<br />}<br />}[/syntax]<br /><br />Będę wdzięczny za kod lub linki, pokażę Wam też, do czego to piszę:<br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br />Pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />EDIT:<br /><br />Już znalazłem, przesuwanie maski...<br />mam sobie maskę, same zera i 1 na końcu, oraz słowo, same zera, przesuwam tę maskę o jedno pole [syntax=c]maska&lt;&lt;=1;[/syntax] gdy ma być wpisane 0, a gdy ma być 1, przesuwam,  , oraz zapisuję do słowa te jedynaczkę przez OR: [syntax=c]maska&lt;&lt;=1;<br />slowo |= maska;[/syntax]<br /><br />a zmienną ucinam przez [syntax=c]output = (uint16_t)(slowo &gt;&gt; 16);[/syntax] , output to już jest ta moja okrojona zmienna...<br /><br />W sumie tyle, chciałem usunąć, ale może niech zostanie i komuś się przyda, no i jak macie jakieś uwagi, to śmiało <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Pozdrawiam, Tomek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11086">Tded</a> — 25 sie 2018, o 00:52</p><hr />
]]></content>
</entry>
</feed>