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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-01-22T21:23:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7144&amp;mode</id>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2016-01-22T21:23:09+01:00</updated>
<published>2016-01-22T21:23:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=151442#p151442</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=151442#p151442"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=151442#p151442"><![CDATA[
<div class="quotetitle">jim3 napisał(a):</div><div class="quotecontent"><br />nawet na wejściu obsługi przerwania program już nie odpowiada<br /></div><br />To przerwanie wywoływane jest opadającym zboczem i nawet możesz podpiąć tam przycisk i powinna być reakcja czyli wejście do funkcji obsługi przerwania.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 22 sty 2016, o 21:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jim3]]></name></author>
<updated>2016-01-21T20:36:06+01:00</updated>
<published>2016-01-21T20:36:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=151343#p151343</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=151343#p151343"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=151343#p151343"><![CDATA[
Faktycznie wyżej wymienione błędy (no może oprócz tego z if-em) były efektem testowania, ale bardzo dziękuję za uwagę.<br />Dodatkowo faktycznie po zmianie procesora i powrocie do 168 podkreślenie znikło. Dzięki!<br /> <br />Niestety program nadal nie chce odpalić. TSOP jest raczej dobrze połączony (obserwowałem przebiegi ramki pilota na oscyloskopie) i do końca nie wiem co jest w tym wypadku źle. Przy wstawieniu pułapki programowej z diodą LED program reaguje do momentu <br />[syntax=c]if(ramka_gotowa)[/syntax]<br />(nawet na wejściu obsługi przerwania program już nie odpowiada).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12506">jim3</a> — 21 sty 2016, o 20:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2016-01-11T19:27:15+01:00</updated>
<published>2016-01-11T19:27:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=150282#p150282</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=150282#p150282"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=150282#p150282"><![CDATA[
<div class="quotetitle">jim3 napisał(a):</div><div class="quotecontent"><br />program nie działa<br /></div><br />Zbyt ogólne stwierdzenie. Brak odbioru ramki czy błędne dane?<br /><div class="quotetitle">jim3 napisał(a):</div><div class="quotecontent"><br />[syntax=c]#define HIGH_BIT 1200 //stan wysoki (1 logiczna) trwający wraz z przerwą 1,8 ms[/syntax]<br /></div><br />Zakładam, że to w wyniku testów zmieniłeś wartość na inną niż w komentarzu. Podobnie LOW_BIT<br /><div class="quotetitle">jim3 napisał(a):</div><div class="quotecontent"><br />[syntax=c]static uint8_t StatusRamki;[/syntax]<br /></div><br />Wykorzystanie zmiennej, która nie pomieści całej ramki.<br /><div class="quotetitle">jim3 napisał(a):</div><div class="quotecontent"><br />[syntax=c]if (ZliczImp&gt;=1)[/syntax]<br /></div><br />Powinno być &gt;, a to dlatego, że chodziło o to, że po zwiększeniu zmiennej ZliczImp program w tym samym przerwaniu powinien pominąć rozróżnianie bitów i od razu przejść do ostatniego warunku.<br />Zmienne adres i komenda nie uwzględniają przesunięcia o 2, a warunek zakończenia powinien być na ZliczImp == 14<br /><div class="quotetitle">jim3 napisał(a):</div><div class="quotecontent"><br />Dodatkowo Eclipse z lubością podkreśla mi wiersz<br /></div><br />Zmień na chwilę procek na inny i z powrotem. Na forum był też inny sposób na to, ale musisz poszukać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 11 sty 2016, o 19:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-01-10T21:05:11+01:00</updated>
<published>2016-01-10T21:05:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=150195#p150195</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=150195#p150195"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=150195#p150195"><![CDATA[
Jak coś to polecam Greenbooka w zakresie osbługi innych standardów IR, <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 />ja nie mam na tyle czasu aby analizować tu program - ale w razie czego w książce znajdziesz dużo ważnych informacji na ten temat<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 sty 2016, o 21:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jim3]]></name></author>
<updated>2016-01-10T20:58:57+01:00</updated>
<published>2016-01-10T20:58:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=150194#p150194</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=150194#p150194"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=150194#p150194"><![CDATA[
Witam.<br /><br />Chciałem napisać program, który odbiera w standardzie Sony. Niestety coś poszło nie tak i program nie działa. Programik dość zbliżony do tego dwa posta wyżej (Sony i Nec to dwa zbliżone do siebie standardy).<br /><br />[syntax=c]#include &lt;avr/io.h&gt; <br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define TOLERANCJA 150 //tolerancja wynosząca 150 us<br />#define START_BIT 3000 // impuls startowy trwający wraz z przerwą 3 ms<br />#define HIGH_BIT 1200 //stan wysoki (1 logiczna) trwający wraz z przerwą 1,8 ms<br />#define LOW_BIT 600 // stan niski (0 logiczne) trwający wraz z przerwą 1,2 ms<br /><br />volatile uint8_t ramka_gotowa;<br />volatile uint8_t adres;<br />volatile uint8_t komenda;<br /><br />volatile uint8_t Ir_key_press_flag;<br /><br />volatile uint8_t sony_licz;<br /><br />int main (void){<br />DDRB &amp;=~ (1&lt;&lt;0); <br />PORTB |= (1&lt;&lt;0); <br /><br />lcd_init();<br /><br />TCCR1B |= (1&lt;&lt;CS10); <br />TCCR1B &amp;=~ (1&lt;&lt;ICES1); <br /><br />sony_licz=0; <br />TIMSK1 |= (1&lt;&lt;ICIE1);<br />sei();<br />while(1)<br />{<br />if(ramka_gotowa)<br />{<br /> lcd_locate(0,0);<br /> lcd_int(adres);<br /> lcd_str(&quot;  &quot;);<br /> lcd_locate(1,0);<br /> lcd_int(komenda);<br /> lcd_str(&quot;  &quot;);<br /> ramka_gotowa = 0;<br />}<br />}<br />}<br /><br />ISR(TIMER1_CAPT_vect){<br />static uint16_t LastCapture; <br />uint16_t SzerImp; <br />static uint8_t ZliczImp = 0; <br />static uint16_t IrDane = 2 ;<br />static uint8_t StatusRamki;<br /><br />SzerImp = ICR1-LastCapture; <br />LastCapture=ICR1;<br />if(ZliczImp==0 &amp;&amp; SzerImp&gt;START_BIT-TOLERANCJA &amp;&amp; SzerImp &lt; START_BIT+TOLERANCJA)<br />{<br />ZliczImp++;<br />}<br />if (ZliczImp&gt;=1){<br />if(SzerImp &gt; HIGH_BIT - TOLERANCJA &amp;&amp; SzerImp &lt; HIGH_BIT + TOLERANCJA) IrDane=1;<br />if(SzerImp &gt; LOW_BIT - TOLERANCJA &amp;&amp; SzerImp &lt; LOW_BIT + TOLERANCJA) IrDane=0;<br />if (IrDane !=2){<br />StatusRamki |= IrDane&lt;&lt;ZliczImp;<br />if (ZliczImp == 13){<br />adres = StatusRamki;<br />komenda = StatusRamki &gt;&gt; 5;<br />StatusRamki = 0;<br />ZliczImp = 0;<br />ramka_gotowa=1;<br />}<br />else{<br />ZliczImp++;<br />}<br />}<br />else{<br />ZliczImp=0;<br />}<br />}<br />if (ZliczImp ==1) ZliczImp++;<br />}[/syntax] <br /><br />Działam na atmedze 168, o taktowaniu 1MHz. <br />Dodatkowo Eclipse z lubością podkreśla mi wiersz <br />[syntax=c]TIMSK1 |= (1&lt;&lt;ICIE1);[/syntax]<br />nie tylko w tym programie ale np. w dekodowaniu RC5 z BB, i nie wiem dlaczego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12506">jim3</a> — 10 sty 2016, o 20:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-06-05T23:40:26+01:00</updated>
<published>2014-06-05T23:40:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83508#p83508</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83508#p83508"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83508#p83508"><![CDATA[
Krauser<br />Działa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />Musiałem jeszcze dodać bibiotekę  do przerwań i ruszyło:-)<br />Dziękuję za pomoc i wszystkim za udział tym temacie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 5 cze 2014, o 23:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-06-05T18:08:24+01:00</updated>
<published>2014-06-05T18:08:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83490#p83490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83490#p83490"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83490#p83490"><![CDATA[
Brakowało podciągnięcia wejścia (jeśli nie testujesz na ATB) i deklaracji zmiennej frame_ready oraz zerowania temp_frame. Pełny kod dla atmeagi16:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define F_START F_CPU/8000*13.5<br />#define F_ONE F_CPU/8000*2.25<br />#define F_ZERO F_CPU/8000*1.125<br />#define F_MARGIN F_CPU/8000*0.4<br /><br />volatile uint8_t frame_ready; <br />volatile uint8_t address;<br />volatile uint8_t command;<br /> <br />int main(void)<br />{    <br />        DDRA |= (1&lt;&lt;PA7);<br />PORTA |= (1&lt;&lt;PA7); /* podświetlenie wyświetlacza LCD */<br /><br />        PORTD |= (1&lt;&lt;PD6); /* podciągnięcie wejścia IR */<br /><br />lcd_init();/* inicjalizacja LCD */<br />        /* ir timer */<br />        TCCR1B |= (1&lt;&lt;CS11);    /* prescaler = 8 */<br />        TCCR1B &amp;= ~(1&lt;&lt;ICES1);  /* falling edge */<br />        TIMSK1 |= (1&lt;&lt;ICIE1);   /* enable interrupt */<br />        sei();<br />        while(1)<br />        {<br />           if(frame_ready)<br />           {<br />              lcd_locate(0,0);<br />              lcd_int(address);<br />              lcd_str(&quot;  &quot;);<br />              lcd_locate(1,0);<br />              lcd_int(command);<br />              lcd_str(&quot;  &quot;);<br />              frame_ready = 0;<br />           }<br />        }<br />}<br /> <br />ISR(TIMER1_CAPT_vect)<br />{<br />        static uint32_t temp_frame;<br />        static uint16_t last_icr;<br />        uint16_t width;<br />        static uint8_t frame_idx = 33;<br />        uint8_t bit = 2;<br />        width = ICR1 - last_icr;<br />        last_icr = ICR1;<br />        if(frame_idx == 33 &amp;&amp; width &gt; F_START - F_MARGIN &amp;&amp; width &lt; F_START + F_MARGIN)<br />        {<br />                frame_idx--;<br />        }<br />        if(frame_idx &lt; 32)<br />        {<br />                if(width &gt; F_ONE - F_MARGIN &amp;&amp; width &lt; F_ONE + F_MARGIN) bit = 1;<br />                if(width &gt; F_ZERO - F_MARGIN &amp;&amp; width &lt; F_ZERO + F_MARGIN) bit = 0;<br />                if(bit != 2)<br />                {<br />                        temp_frame |= (uint32_t)bit &lt;&lt; frame_idx;<br />                        if(frame_idx == 0)<br />                        {<br />                                address = (uint8_t)(temp_frame &gt;&gt; 24);<br />                                command = (uint8_t)(temp_frame &gt;&gt; 8);<br />                                temp_frame = 0;<br />                                frame_idx = 33;<br />                                frame_ready = 1;<br />                        }<br />                        else<br />                        {<br />                                frame_idx--;<br />                        }<br />                }<br />                else<br />                {<br />                        frame_idx = 33;<br />                }<br />        }<br />        if(frame_idx == 32) frame_idx--;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 5 cze 2014, o 18:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciamciak]]></name></author>
<updated>2014-06-05T16:56:00+01:00</updated>
<published>2014-06-05T16:56:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83486#p83486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83486#p83486"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83486#p83486"><![CDATA[
Mi na M32 działa z GIMSK pod WINAVR.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1254">ciamciak</a> — 5 cze 2014, o 16:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2014-06-05T15:19:36+01:00</updated>
<published>2014-06-05T15:19:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83479#p83479</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83479#p83479"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83479#p83479"><![CDATA[
<div class="quotetitle">mirek1968 napisał(a):</div><div class="quotecontent"><br />Niestety ten kod na pin PD3 także nic nie działa.Podczas kompilacji wywalało mi błąd braku deklaracji zmiennej GIMSK a więc utworzyłem uint8_t GIMSK; ale teraz pomimo braku błędu kompilacji także nic nie dizłą pokazuje tylko liczbe 32 i nie reaguje na impulsy z pilota<br /></div><br /><br />To nie jest jakaś zmienna, tylko rejestr procesora. Nie doczytałem że masz M16. Zamień GIMSK na GICR<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 5 cze 2014, o 15:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-06-04T22:29:38+01:00</updated>
<published>2014-06-04T22:29:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83420#p83420</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83420#p83420"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83420#p83420"><![CDATA[
Krauser<br />Niestety Twój kod nie działa,pokazuje mi się na LCD w jednej i drugiej linii 0<br />Co może być przyczyną??<br />Procesor posiadam Atmegę 16 taktuję 8MHz wewnętrzny oscylator<br />I jeszcze jedna sprawa podczas kompilacji wywal mi błąd braku deklaracji zmiennej &quot;frame_ready&quot; użytego w funkcji przerwania<br />a więc zdeklarowałem tę zmienną w ten sposób ,niewiem czy dobrze??<br /><br />[syntax=c]static uint32_t temp_frame;<br />            static uint16_t last_icr;<br />            uint16_t width;<br />            static uint8_t frame_idx = 33;<br />            static uint8_t frame_ready;    //moja deklaracja<br />            uint8_t bit = 2;<br />            width = ICR1 - last_icr;<br />            last_icr = ICR1;[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />savian86<br />Niestety ten kod na pin PD3 także nic nie działa.Podczas kompilacji wywalało mi błąd braku deklaracji zmiennej GIMSK a więc utworzyłem  uint8_t GIMSK; ale teraz pomimo braku błędu kompilacji także nic nie dizłą pokazuje tylko liczbe 32 i nie reaguje na impulsy z pilota<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 4 cze 2014, o 22:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciamciak]]></name></author>
<updated>2014-06-03T21:11:10+01:00</updated>
<published>2014-06-03T21:11:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83288#p83288</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83288#p83288"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83288#p83288"><![CDATA[
@Krauser<br />Fajny kod, właśnie sobie testuję na pilocie od STB WIWY.<br />Tylko chyba bity komendy i adresu są odwrotnie ładowane (chyba że to IRMP ma odwrotnie).<br /><br />Do działania brakowało mi jeszcze zerowania temp_frame.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1254">ciamciak</a> — 3 cze 2014, o 21:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2014-06-03T18:55:17+01:00</updated>
<published>2014-06-03T18:55:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83257#p83257</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83257#p83257"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83257#p83257"><![CDATA[
Jeśli niekoniecznie musi to być obsługa z wykorzystaniem ICP to spróbuj poniższego:<br /><br />[syntax=c]#define NEC_DDRDDRD<br />#define NEC_PORTPORTD<br />#define NEC_PIN_IN             PIND<br />#define NEC_PINPD3<br /><br />#define NECBitHigh()    (NEC_PIN_IN &amp; (1&lt;&lt;NEC_PIN))<br />#define NECBitLow()     !(NEC_PIN_IN &amp; (1&lt;&lt;NEC_PIN))<br /><br />#define int1_en GIMSK|=(1&lt;&lt;INT1)<br />#define int1_ds GIMSK&amp;=~(1&lt;&lt;INT1)<br /><br />volatile uint8_t address;<br />volatile uint8_t command;<br />volatile uint8_t Ir_key_press_flag;<br /><br />void nec_init(void)<br />{<br />    NEC_DDR  &amp;= ~(1&lt;&lt;NEC_PIN);<br />    NEC_PORT |= (1&lt;&lt;NEC_PIN);<br /><br />    MCUCR &amp;= ~(1&lt;&lt;ISC11)| (1&lt;&lt;ISC10)); <br /><br />    int1_en;<br />}<br /><br />SIGNAL(SIG_INTERRUPT1)<br />{<br /><br />int1_ds;<br /><br />uint16_t Tik;<br />uint8_t rep,start,cmd1,cmd2=0,adr1,adr2,cmd,adr,byt;<br /><br />Tik=start=rep=adr=cmd=adr1=adr2=cmd1=cmd2=byt=0;<br /><br />while(1)<br />{<br />if(Tik &gt;= 139 &amp;&amp; Tik &lt; 150){ adr=start=1;rep=adr1=adr2=cmd=cmd2=0; }<br /><br />if(Tik &gt;= 116 &amp;&amp; Tik &lt; 139) { adr=2; rep=1;start=0; }<br /><br />if(Tik &gt;= 22 &amp;&amp; Tik &lt; 116)<br />{<br />byt++;<br />if(byt&lt;9) {adr2&lt;&lt;=1;adr2++;}<br />if(byt&gt;=9 &amp;&amp; byt&lt;17) {adr1&lt;&lt;=1;adr1++;}<br />if(byt&gt;=17 &amp;&amp; byt&lt;25) {cmd2&lt;&lt;=1;cmd2++;}<br />if(byt&gt;=25){cmd1&lt;&lt;=1;cmd1++;}<br />}<br /><br />if(Tik &gt;= 10 &amp;&amp; Tik &lt; 22)<br />{<br />byt++;<br />if(byt&lt;9)adr2&lt;&lt;=1;<br />if(byt&gt;=9 &amp;&amp; byt&lt;17)adr1&lt;&lt;=1;<br />if(byt&gt;=17 &amp;&amp; byt&lt;25)cmd2&lt;&lt;=1;<br />if(byt&gt;=25)cmd1&lt;&lt;=1;<br />}<br /><br />Tik=0;<br /><br />if(byt==32)<br />{<br />adr=adr2;cmd=cmd2;<br />if (Ir_key_press_flag == 0){<br />address = adr;<br />command = cmd;<br />}<br /><br />Ir_key_press_flag = 1;<br /><br />byt=rep=start=0;<br />int1_en;<br /><br />return;<br />}<br /><br />if(NECBitLow()) { while(NECBitLow()) { Tik++; _delay_us(96);} }<br />while(NECBitHigh())<br />{<br />Tik++;<br />if(Tik&gt;=200){int1_en;return;}<br />_delay_us(96);<br />}<br />}<br /><br />}<br /><br /><br />int main(void)<br />{<br />nec_init();<br /><br />sei();<br /><br />while(1)<br />{<br />if(Ir_key_press_flag) {<br />lcd_int(address);<br />lcd_int(command);<br />Ir_key_press_flag = 0;<br />}<br />}<br /><br />}[/syntax] nie jest to dosyć optymalne ;]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 3 cze 2014, o 18:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-06-03T14:14:17+01:00</updated>
<published>2014-06-03T14:14:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83200#p83200</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83200#p83200"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83200#p83200"><![CDATA[
<div class="quotetitle">mirek1968 napisał(a):</div><div class="quotecontent"><br />Przepraszam ale mam jedno pytanko,dla jakiej częstotliwości procesora F_CPU jest ten przykład?-bo na pewno nie dla każdej częstotliwości?<br /></div><br />Jeśli wynik nie wyjdzie poza 65535 to dla każdej. Bezpieczniej będzie ustawić preskaler na 8 i wtedy tak to się zmieni:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#define F_START F_CPU/8000*13.5<br />#define F_ONE F_CPU/8000*2.25<br />#define F_ZERO F_CPU/8000*1.125<br />#define F_MARGIN F_CPU/8000*0.4<br /> <br />volatile uint8_t address;<br />volatile uint8_t command;<br /> <br />int main(void)<br />{<br />        /*lcd*/<br />        /* ir timer */<br />        TCCR1B |= (1&lt;&lt;CS11);    /* prescaler = 8 */<br />        TCCR1B &amp;= ~(1&lt;&lt;ICES1);  /* falling edge */<br />        TIMSK1 |= (1&lt;&lt;ICIE1);   /* enable interrupt */<br />        sei();<br />        while(1)<br />        {<br />           //przyklad<br />           lcd_locate(0,0);<br />           lcd_int(address);<br />           lcd_locate(1,0);<br />           lcd_int(command);<br />        }<br />}[/syntax]<div class="quotetitle">mirek1968 napisał(a):</div><div class="quotecontent"><br />czy tu nie powinno być tak?<br />[syntax=c]TIMSK  |= (1&lt;&lt;TICIE1);   /* enable interrupt */[/syntax]<br /></div><br />Mogą być pewne różnice w zależności od mikrokontrolera.<div class="quotetitle">mirek1968 napisał(a):</div><div class="quotecontent"><br />IR na PD6<br /></div> Tak.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 3 cze 2014, o 14:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-06-03T09:17:53+01:00</updated>
<published>2014-06-03T09:17:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83169#p83169</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83169#p83169"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83169#p83169"><![CDATA[
Tu jest chyba błąd podczas kompilacji (posiadam Atmegę16)<br /><br />[syntax=c]TIMSK1 |= (1&lt;&lt;ICIE1);   /* enable interrupt */[/syntax]<br /><br />czy tu nie powinno być tak?<br />[syntax=c]TIMSK  |= (1&lt;&lt;TICIE1);   /* enable interrupt */[/syntax]<br /><br /><br />I jeszcze jedno pytanie jaką zmienną  pin wejściowy odbiornika IR na PD6 ? i co mam wstawić do głównej pętli jako wynik odczytu kodu odbiornika IR?<br />Bo przyznam się że nie zrozumiałem tego kodu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 3 cze 2014, o 09:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-06-03T06:20:45+01:00</updated>
<published>2014-06-03T06:20:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83155#p83155</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83155#p83155"/>
<title type="html"><![CDATA[Re: Odp: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83155#p83155"><![CDATA[
<div class="quotetitle">mirek1968 napisał(a):</div><div class="quotecontent"><br />Przepraszam ale mam jedno pytanko,dla jakiej częstotliwości procesora F_CPU jest ten przykład?-bo na pewno nie dla każdej częstotliwości?<br /></div><br /><br />Zamiast F_CPU podstaw swoje taktowanie procesora.<br /><br />Wysłane z telefonu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 3 cze 2014, o 06:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-06-02T22:37:27+01:00</updated>
<published>2014-06-02T22:37:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83151#p83151</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83151#p83151"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83151#p83151"><![CDATA[
Przepraszam ale mam jedno pytanko,dla jakiej częstotliwości procesora F_CPU jest ten przykład?-bo na pewno nie dla każdej częstotliwości?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 2 cze 2014, o 22:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-06-02T20:53:02+01:00</updated>
<published>2014-06-02T20:53:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83129#p83129</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83129#p83129"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83129#p83129"><![CDATA[
Dla NEC to nie ma po co mierzyć szerokości połówek impulsów tylko całe impulsy (stan L + H). Timer należy skonfigurować na opadające zbocze. Nie ma potrzeby tego później zmieniać. Koniecznie trzeba dorzucić do tych definicji nagłówek o długości całkowitej (L+H) 13,5ms. Przykład nie testowany  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#define F_START F_CPU/1000*13.5<br />#define F_ONE F_CPU/1000*2.25<br />#define F_ZERO F_CPU/1000*1.125<br />#define F_MARGIN F_CPU/1000*0.4<br /><br />volatile uint8_t address;<br />volatile uint8_t command;<br /><br />int main(void)<br />{<br />        /* ir timer */<br />        TCCR1B |= (1&lt;&lt;CS10);    /* prescaler = 1 */<br />        TCCR1B &amp;= ~(1&lt;&lt;ICES1);  /* falling edge */<br />        TIMSK1 |= (1&lt;&lt;ICIE1);   /* enable interrupt */<br />        sei();<br />        while(1)<br />        {<br />        //...<br />        }<br />}<br /><br />ISR(TIMER1_CAPT_vect)<br />{<br />        static uint32_t temp_frame;<br />        static uint16_t last_icr;<br />        uint16_t width;<br />        static uint8_t frame_idx = 33;<br />        uint8_t bit = 2;<br />        width = ICR1 - last_icr;<br />        last_icr = ICR1;<br />        if(frame_idx == 33 &amp;&amp; width &gt; F_START - F_MARGIN &amp;&amp; width &lt; F_START + F_MARGIN)<br />        {<br />                frame_idx--;<br />        }<br />        if(frame_idx &lt; 32)<br />        {<br />                if(width &gt; F_ONE - F_MARGIN &amp;&amp; width &lt; F_ONE + F_MARGIN) bit = 1;<br />                if(width &gt; F_ZERO - F_MARGIN &amp;&amp; width &lt; F_ZERO + F_MARGIN) bit = 0;<br />                if(bit != 2)<br />                {<br />                        temp_frame |= (uint32_t)bit &lt;&lt; frame_idx;<br />                        if(frame_idx == 0)<br />                        {<br />                                address = (uint8_t)(temp_frame &gt;&gt; 24);<br />                                command = (uint8_t)(temp_frame &gt;&gt; 8);<br />                                frame_idx = 33;<br />                                frame_ready = 1;<br />                        }<br />                        else<br />                        {<br />                                frame_idx--;<br />                        }<br />                }<br />                else<br />                {<br />                        frame_idx = 33;<br />                }<br />        }<br />        if(frame_idx == 32) frame_idx--;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 2 cze 2014, o 20:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-06-02T10:18:23+01:00</updated>
<published>2014-06-02T10:18:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83015#p83015</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83015#p83015"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83015#p83015"><![CDATA[
Proszę jednak o pomoc<br />W  RC5 z BB było to prostsze bo logiczna jedynka na odbiorniku miała taki sam czas impulsu dla zera logicznego i jedynki.<br />A tu jedynka logiczna ma czas impulsu 2,25ms dla jedynki logicznej oraz o połowe krótszy czas impulsu dla zera logicznego czyli 1,12ms.<br /><br />A więc :<br />czy taki zapis jest ok dla NEC,ale to tyczy się przecież tylko logicznej jedynki a co z zerem logicznym ?<br /><br /><br />[syntax=c]// stałe czasowa i tolerancja wyrażone w us<br />#define TOLERANCE 200<br />#define MIN_HALF_BIT ir_micro_s(1125- TOLERANCE)<br />#define MAX_HALF_BIT ir_micro_s(1125 + TOLERANCE)<br />#define MAX_BIT ir_micro_s((1125+1125) + TOLERANCE)[/syntax]<br /><br />Proszę o pomoc,co jeszcze muszę zrobić ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 2 cze 2014, o 10:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-06-02T08:21:14+01:00</updated>
<published>2014-06-02T08:21:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83007#p83007</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83007#p83007"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=83007#p83007"><![CDATA[
Spróbuję zrobić tak jak piszesz a jak nie będzie mi coś działać to się odezwę jeszcze:-)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 2 cze 2014, o 08:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2014-06-01T20:51:32+01:00</updated>
<published>2014-06-01T20:51:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=82995#p82995</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=82995#p82995"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=82995#p82995"><![CDATA[
Ale masz podane przebiegi, teraz mając BB możesz śmiało na podstawie tych informacji i książki napisać własną obsługę tego kodowania.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=823">janeczqu</a> — 1 cze 2014, o 20:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-06-01T19:56:16+01:00</updated>
<published>2014-06-01T19:56:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=82989#p82989</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=82989#p82989"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=82989#p82989"><![CDATA[
Szkoda że to jest na temat bascomu a nie c i dzięki za pomoc:-)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 1 cze 2014, o 19:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2014-06-01T19:40:02+01:00</updated>
<published>2014-06-01T19:40:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=82986#p82986</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=82986#p82986"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=82986#p82986"><![CDATA[
Może pomoże coś z tego:<br /><!-- m --><a class="postlink" href="http://kaktusus.cba.pl/wordpress/?p=345" >http://kaktusus.cba.pl/wordpress/?p=345</a><!-- m --><br /><!-- m --><a class="postlink" href="http://forum.mikrokontrolery.net/viewtopic.php?t=1090" >http://forum.mikrokontrolery.net/viewtopic.php?t=1090</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=823">janeczqu</a> — 1 cze 2014, o 19:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-05-21T09:43:09+01:00</updated>
<published>2014-05-21T09:43:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=81928#p81928</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=81928#p81928"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=81928#p81928"><![CDATA[
<div class="quotetitle">savian86 napisał(a):</div><div class="quotecontent"><br />W takim razie będzie mały problem.<br /></div><br /><br />Dlaczego ? ... przecież w necie jest mnóstwo informacji na ten temat ... da się znaleźć<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 maja 2014, o 09:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2014-05-21T09:39:55+01:00</updated>
<published>2014-05-21T09:39:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=81927#p81927</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=81927#p81927"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=81927#p81927"><![CDATA[
Datę widziałem,ale do paczki ze strony już nie zaglądałem. W takim razie będzie mały problem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 21 maja 2014, o 09:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-05-20T22:13:32+01:00</updated>
<published>2014-05-20T22:13:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=81894#p81894</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=81894#p81894"/>
<title type="html"><![CDATA[Re: Pilot nadający w innym standarcie niż RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7144&amp;p=81894#p81894"><![CDATA[
<div class="quotetitle">savian86 napisał(a):</div><div class="quotecontent"><br />Nie trzeba, cytat mirka z elektrody:<br /></div><br /><br />A widział kolega datę tego wpisu ? ... 2010 rok, jeszcze przed ukazaniem się Bluebooka. Pod tym  linkiem jest program na PC, ale nie ma wsadu do procka AVR, odkąd cały projekt w całości przeszedł do GreenBook'a.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 maja 2014, o 22:13</p><hr />
]]></content>
</entry>
</feed>