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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-07-08T16:38:46+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=15730&amp;mode</id>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2016-07-08T16:38:46+01:00</updated>
<published>2016-07-08T16:38:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163674#p163674</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163674#p163674"/>
<title type="html"><![CDATA[Re: Problem z nRF24L01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163674#p163674"><![CDATA[
jeżeli zamierzam coś wysyłać z odbiornika to kolejność jest taka:<br /><br />- odbieram dane<br />- odbieram dane<br />- zmieniam na TX na nadawanie<br />- robię pauzę ale nie programu a opóźniam wysyłanie danych<br />- wysyłam dane<br />- zmieniam na RX na odbiór<br />- robię pauzę - nie programu a opóźniam event od odbioru danych<br /><br />w taki sposób zawsze działa mi przełączanie odbirnika w tryb wysyłu<br />natomiast nadajnik zawsze odbierze dane.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 8 lip 2016, o 16:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[drewpol]]></name></author>
<updated>2016-07-08T11:35:10+01:00</updated>
<published>2016-07-08T11:35:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163648#p163648</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163648#p163648"/>
<title type="html"><![CDATA[Re: Problem z nRF24L01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163648#p163648"><![CDATA[
Właśnie w nocie wyczytałem, że przerwa musi być, aby nRF zdołał się przełączyć. Widziałem także w temacie z bibliotekami, że pisałeś coś o tej przerwie. Mógłbyś mi wskazać miejsce, w którym należy dodać to opóźnienie? Masz na myśli Event, czy callbacka ? Po odbiorze wysyłasz dane w callbacku czy w funkcji głównej ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8379">drewpol</a> — 8 lip 2016, o 11:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2016-07-08T07:45:07+01:00</updated>
<published>2016-07-08T07:45:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163630#p163630</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163630#p163630"/>
<title type="html"><![CDATA[Re: Problem z nRF24L01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163630#p163630"><![CDATA[
A zrób 50us przerwy po odbiorze przed nadawaniem bo może tak być że nrf nie zdola przelaczyc trybu z odbioru na nadawanie i dlatego gubi ramki bo ich nie wysyla.<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 8 lip 2016, o 07:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[drewpol]]></name></author>
<updated>2016-07-07T13:22:17+01:00</updated>
<published>2016-07-07T13:22:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163579#p163579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163579#p163579"/>
<title type="html"><![CDATA[Re: Problem z nRF24L01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163579#p163579"><![CDATA[
Chodzi o to, że gdy mam ustawione ACK to działa bez problemu. Gdy jeden odbiornik nada to drugi czeka na potwierdzenie. ACK musiałem wyłączyć, ponieważ chcę stworzyć sieć z jednym PTX oraz kilkoma PRX. Opcja MultiCeiver daje możliwość wykorzystywania kilku strumieni, ale działają odwrotnie. Jest jeden PRX oraz kilka PTX, a taka opcja nie wchodzi w grę. Dlatego wyłączenie ACK daje możliwość wysyłania informacji do wielu urządzeń o parsowania po ramkach. Problem jest jedynie z tym odbiorem. Wydaje mi się, że jest to kwestia pogodzenia nadawania i odbierania, ale nie mam pomysłu gdzie leży błąd.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8379">drewpol</a> — 7 lip 2016, o 13:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2016-07-07T12:24:25+01:00</updated>
<published>2016-07-07T12:24:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163575#p163575</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163575#p163575"/>
<title type="html"><![CDATA[Re: Problem z nRF24L01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163575#p163575"><![CDATA[
Odsuń je od siebie czy nie uważasz, że jeżeli ustawione mają najwyższą moc to się nie będą zakłócały ?<br />Odsuń je co najmniej na 50 - 70 cm i wtedy już nie powinny się zakłócać i nie powinieneś gubić ramek.<br /><br />Ewentualnie jeżeli problem będzie nadal występował zmień im kanał bo może również być tak, że coś nadaje w pobliżu ich częstotliwości.<br />Może router wifi, laptop lub telefon z włączonym wifi masz obok nich ?<br /><br />nRF pracuje na 2.4GHz tak samo jak wifi i mogą się wspólnie zakłócać wtedy pozostaje tylko zmiana kanału aby odsunąć się od tych co pracują w eterze.<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 7 lip 2016, o 12:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[drewpol]]></name></author>
<updated>2016-07-07T11:51:17+01:00</updated>
<published>2016-07-07T11:51:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163570#p163570</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163570#p163570"/>
<title type="html"><![CDATA[Re: Problem z nRF24L01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163570#p163570"><![CDATA[
15 cm.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8379">drewpol</a> — 7 lip 2016, o 11:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2016-07-07T06:59:45+01:00</updated>
<published>2016-07-07T06:59:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163558#p163558</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163558#p163558"/>
<title type="html"><![CDATA[Re: Problem z nRF24L01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163558#p163558"><![CDATA[
W jakiej odleglosci masz odbiornik od nadajnika ?<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 7 lip 2016, o 06:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[drewpol]]></name></author>
<updated>2016-07-06T17:03:17+01:00</updated>
<published>2016-07-06T17:03:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163522#p163522</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163522#p163522"/>
<title type="html"><![CDATA[Problem z nRF24L01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15730&amp;p=163522#p163522"><![CDATA[
Mam pewien dziwny problem z tymi modułami. Bowiem z jednego uC wysyłam dane w postaci licznika, który zwiększa się cały czas o 1 w górę i go wysyła, a w odbiorniku po prostu wyświetlam dane na LCD oraz terminalu. Podczas wysyłania powstają &quot;dziury&quot; w odbieranych danych. Funkcja wysyłająca wygląda tak:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &quot;MKUART/mkuart.h&quot;<br />#include &quot;NRF/nRF24L01.h&quot;<br /><br />void moja_funkcja ( void * nRF_RX_buff , uint8_t len );<br />volatile uint16_t timer100ms;<br /><br />uint8_t i;<br />char bufor&#91;15&#93;;<br />uint8_t status;<br /><br />int main(void){<br /><br />USART_Init( __UBRR );// inicjalizacja UART<br /><br />DDRC |= (1&lt;&lt;PC7);<br />PORTC |= (1&lt;&lt;PC7);<br /><br />//inicjalizacja nRFa<br />    nRF_init();<br />    register_nRF_RX_Event_Callback(moja_funkcja);<br /><br />    //inicjalizacja timera programowego co 1ms<br />    TCCR0 |= (1&lt;&lt;WGM01) | (1&lt;&lt;CS01) | (1&lt;&lt;CS00);<br />    TIMSK |= (1&lt;&lt;OCIE0);<br />   OCR0 = 124;<br /><br />   //zezwolenie na przerwania<br />    sei();<br /><br />    nRF_TX_Power_Up(); //odpalamy nRFA!<br /><br />while(1){<br /><br />if(timer100ms == 0)<br />{<br />//lcd_cls();<br />timer100ms = 500 ;<br />itoa( ++i, bufor, 10);<br />nRF_SendDataToAir(bufor);<br />status = nRF_Read_One_Byte_From_Register(STATUS);<br />}<br /><br />nRF_RX_EVENT();<br /><br />}<br />}<br /><br />void moja_funkcja ( void * nRF_RX_buff, uint8_t len )<br />{<br />//Tu sie nic nie dzieje bo nic nie odbieram<br />}<br /><br />ISR(TIMER0_COMP_vect)<br />{<br />if(timer100ms) timer100ms--;<br />}[/syntax]<br /><br />Natomiast funkcja odbierająca wygląda tak:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;MKUART/mkuart.h&quot;<br />#include &quot;NRF/nRF24L01.h&quot;<br /><br />void moja_funkcja ( void * nRF_RX_buff , uint8_t len );<br />volatile uint16_t timer100ms;<br /><br />uint8_t i;<br />char bufor&#91;15&#93;;<br />uint8_t status;<br /><br />int main(void){<br /><br />DDRA |= (1&lt;&lt;PA7);<br />PORTA |= (1&lt;&lt;PA7);<br /><br />lcd_init();<br />lcd_str(&quot;start...&quot;);<br /><br />USART_Init( __UBRR );// inicjalizacja UART<br /><br />_delay_ms(1000);<br /><br />DDRC |= (1&lt;&lt;PC7);<br />PORTC |= (1&lt;&lt;PC7);<br /><br />    //inicjalizacja timera programowego co 1ms<br />    TCCR0 |= (1&lt;&lt;WGM01) | (1&lt;&lt;CS01) | (1&lt;&lt;CS00);<br />    TIMSK |= (1&lt;&lt;OCIE0);<br />   OCR0 = 124;<br /><br />//inicjalizacja nRFa<br />    nRF_init();<br /><br />    Initialize_INTERRUPT_For_nRF();<br />    register_nRF_RX_Event_Callback(moja_funkcja);<br /><br /><br />   //zezwolenie na przerwania<br />    sei();<br /><br />    nRF_RX_Power_Up(); //odpalamy nRFA!<br /><br />while(1){<br />lcd_locate(1,0);<br />if(status &amp; (1&lt;&lt;7)) lcd_int(1);<br />else lcd_int(0);<br />if(status &amp; (1&lt;&lt;6)) lcd_int(1);<br />else lcd_int(0);<br />if(status &amp; (1&lt;&lt;5)) lcd_int(1);<br />else lcd_int(0);<br />if(status &amp; (1&lt;&lt;4)) lcd_int(1);<br />else lcd_int(0);<br />if(status &amp; (1&lt;&lt;3)) lcd_int(1);<br />else lcd_int(0);<br />if(status &amp; (1&lt;&lt;2)) lcd_int(1);<br />else lcd_int(0);<br />if(status &amp; (1&lt;&lt;1)) lcd_int(1);<br />else lcd_int(0);<br />if(status &amp; (1&lt;&lt;0)) lcd_int(1);<br />else lcd_int(0);<br /><br />if(timer100ms == 0)<br />{<br />timer100ms = 1000 ;<br />itoa( ++i, bufor, 10);<br />status = nRF_Read_One_Byte_From_Register(STATUS);<br />}<br />nRF_RX_EVENT();<br />}<br />}<br /><br />void moja_funkcja ( void * nRF_RX_buff, uint8_t len )<br />{<br />        //Tu odbieram dane i wyswietlam na wyswietlacz LCD<br />lcd_cls();<br />lcd_locate(0,0);<br />lcd_str(nRF_RX_buff);<br /><br />        //Tu wyswietlam w terminalu<br />uart_puts(nRF_RX_buff);<br />uart_putc('\r');<br />uart_putc('\n');<br />}<br />ISR(TIMER0_COMP_vect)<br />{<br />if(timer100ms) timer100ms--;<br />}[/syntax]<br /><br />W terminalu odebrane dane wyglądają tak:<br /><a href="https://obrazkiforum.atnel.pl/8379/c2d4fc78985fa9f300bf228666ae43dd.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/8379/c2d4fc78985fa9f300bf228666ae43dd.png" alt="Obrazek" /></a><br /><br />Część jest zgubiona i dodatkowo występują przerwy. Biblioteki są standardowe jak w tym temacie <a href="http://forum.atnel.pl/topic11377.html"  class="postlink">http://forum.atnel.pl/topic11377.html</a><br /><br />Nie wiem co może być powodem tak dziwnego zachowania. Nadajnik na ATmega16, a odbiornik na ATmega32.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8379">drewpol</a> — 6 lip 2016, o 17:03</p><hr />
]]></content>
</entry>
</feed>