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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12116&amp;mode</id>
<entry>
<author><name><![CDATA[Czapek]]></name></author>
<updated>2015-07-06T14:56:11+01:00</updated>
<published>2015-07-06T14:56:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=133761#p133761</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=133761#p133761"/>
<title type="html"><![CDATA[Re: Współpraca bibliotek RF12 oraz UART (Pana Mirka)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=133761#p133761"><![CDATA[
Znalezione błędy, poprawione <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=9183">Czapek</a> — 6 lip 2015, o 14:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Czapek]]></name></author>
<updated>2015-07-03T19:50:25+01:00</updated>
<published>2015-07-03T19:50:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=133560#p133560</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=133560#p133560"/>
<title type="html"><![CDATA[Re: Współpraca bibliotek RF12 oraz UART (Pana Mirka)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=133560#p133560"><![CDATA[
Co do komunikacji RFM12B-RFM12B...<br />W tej chwili komunikacja prawie działa. <br />Gdy sprawdzam czy dane nadeszły (jakiekolwiek-poprzez zmianę stanu diody gdy nadejdą) wszystko działa.<br />Jest tylko taki mały defekt - gdy sprawdzam nadejście konkretnych danych to stan diody zmienia się dopiero po podwójnym wysłaniu tych samych danych.<br />Powiedzmy że wysyłam dane &quot;aaa&quot; i sprawdzam w mikroklocku odbierającym dane (wykorzystując RFM12B):<br />[syntax=c]if( 0 == strcmp(test,&quot;aaa&quot;) ){<br />PORTC^=LED1;<br />}[/syntax]<br />Musze wysłać dane dwukrotnie aby stan diody się zmienił.<br /><br />Działanie powtarza się dla zwykłych stringów (np &quot;aaa&quot;) lub stringów odebranych i zamienionych na int za pomocą atoi().<br />Może ktoś domyśla się co to może być?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9183">Czapek</a> — 3 lip 2015, o 19:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-06-26T20:04:57+01:00</updated>
<published>2015-06-26T20:04:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=133000#p133000</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=133000#p133000"/>
<title type="html"><![CDATA[Re: Współpraca bibliotek RF12 oraz UART (Pana Mirka)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=133000#p133000"><![CDATA[
Zmienna <em>test</em> to ma być tablicą zdolną pomieścić całą ramkę + 1 znak \0 na koniec łańcucha znaków. Jeśli przesyłasz tylko jeden znak to musi mieć rozmiar 2. Jak chcesz się dobrać do konkretnego znaku to musisz używać indeksu tablicy:<br />[syntax=c]char test&#91;2&#93;; // na jeden znak<br />//...<br />if(test&#91;0&#93; == 'p')[/syntax]<br />Jak chcesz porównywać napisy to korzysta się z funkcji z nagłówka string.h<br />[syntax=c]#include &lt;string.h&gt;<br />//...<br />char test&#91;10&#93;;<br />//...<br />if( 0 == strcmp(test,&quot;LED8_ON&quot;) ) //jak łańcuchy są takie same to funkcja zwraca 0[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 26 cze 2015, o 20:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Czapek]]></name></author>
<updated>2015-06-26T18:18:59+01:00</updated>
<published>2015-06-26T18:18:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=132992#p132992</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=132992#p132992"/>
<title type="html"><![CDATA[Re: Współpraca bibliotek RF12 oraz UART (Pana Mirka)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=132992#p132992"><![CDATA[
Taaak, dokładnie to zrobiłem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />W tej chwili zajmuję się komunikacją bez przerwań. Chcę je dopracować a potem dopiero użyję w komunikacji z przerwaniami (która jak dotychczas delikatnie nie działała)<br /><br />Zastanawia mnie ten fragment kodu:<br /><br />[syntax=c]#if RF12_UseIRQ == 0<br /><br />//PORTC ^= LED2;<br /><br />ret = rf12_rxdata(test);<br />if(ret) {<br />if(test=='p')<br />PORTC ^= LED1;<br />if(test=='l')<br />PORTC^=LED2;<br />//uart_puts(test);<br />} else {<br />//PORTC ^= LED2;<br />//uart_puts(&quot;CRC Err\r\n&quot;);<br />}<br />#endif[/syntax]<br /><br />Plan jest taki- sprawdzić czy do test wpłynął dany znak, jeśli tak-&gt;zapalić odpowiednią diodę.<br />Dioda zapala się (więc jest komunikacja!  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> ) jednak za każdym razem zapala się ta sama. Nie ważne czy if(test=='l') czy też if(test=='p').<br />Podejrzewam, że to jakieś błędy związane z typem zmiennych.<br />(W dalszej części projektu planuję też zamienić zmienne odbierane przez mikrokontroler1 na wartości które po wykorzystaniu dałyby jakiś wynik, który następnie miałby być wysłany znów do pierwszego mikrokontrolera. Sporo do przemyślenia i kombinowania przede mną <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />)<br /><br />Znalazłem gdzieś na forum, gdzie Pan Mirek poleca poniższy artykuł ( w tym 5 filmów) gdzie tłumaczy (mam nadzieję) podobny problem. Zabieram się do oglądania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />Poniżej link:<br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2015/01/wifi232-programowanie-w-c-start.html" >http://mirekk36.blogspot.com/2015/01/wi ... start.html</a><!-- m --><br />W razie jeśli nie znajdę odpowiedzi na swoje pytanie lub znajdę jakieś inne, napiszę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Chybaże komuś wpadnie do głowy, co jest nie tak, to jak najbardziej - piszcie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Artykuł i tak wciągnę!<br />Pozdrawiam!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9183">Czapek</a> — 26 cze 2015, o 18:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-06-25T22:55:36+01:00</updated>
<published>2015-06-25T22:55:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=132927#p132927</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=132927#p132927"/>
<title type="html"><![CDATA[Re: Współpraca bibliotek RF12 oraz UART (Pana Mirka)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=132927#p132927"><![CDATA[
Zajrzyj do uaktualnień programów na temat RFM12<br /><!-- m --><a class="postlink" href="http://www.atnel.pl/uaktualnienia-programow-do-dvd.html" >http://www.atnel.pl/uaktualnienia-programow-do-dvd.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 25 cze 2015, o 22:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Czapek]]></name></author>
<updated>2015-06-24T21:10:30+01:00</updated>
<published>2015-06-24T21:10:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=132768#p132768</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=132768#p132768"/>
<title type="html"><![CDATA[Współpraca bibliotek RF12 oraz UART (Pana Mirka)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12116&amp;p=132768#p132768"><![CDATA[
Witam wszystkich i pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Mam taki mały/duży problem.<br />Otóż mam zamiar skomunikować ze sobą dwa mikrokontrolery przez RFM12B. W tej chwili wykonaną mam komunikację aplikacja z komputera-mikrokontroler-&gt; działa bez zarzutów. Pięknie zapalam sobie lewą bądź prawą diodę zależnie czy wyślę literkę &quot;p&quot; czy &quot;l&quot;. <br />Dziś przeszedłem do kolejnej części planu-&gt; wysłanie danej literki przez moduł rfm12b na inny mikrokontroler i tam zapalenie diody.<br />Wątpiłem, ze zadziała za pierwszym razem xD<br />Uznałem, że dobrze bedzie wszystko dokładnie sprawdzić.<br />Więc...<br />Użyłem dwóch stykówek. na jednej mikrokontroler odbierający dane, RFM12B, dwie diody. Na drugiej DOKŁADNIE TO SAMO, z tym że mikrokontroler jednocześnie odbiera dane z uart (przecież wszystko działa więc czemu nie tak) i wysyła na RFM12B. <br />Mój problem polega na tym, ze gdy inicjalizuję RFM12 - diody na stykówce wysyłającej dane nie zapalają się. A powinny. (Oczywiście odbiór danych również nie działa)<br />Wystarczy że wykomentuję inicjalizację RFM12 -&gt; na stykówce wysyłającej diody zapalają się. (No i oczywiście skoro wyłączyłem inicjalizację RFM12 to wysyłanie nie odbywa się)<br /><br />Jakieś pomysły? <br />Umieszczam wyłącznie mój kod(wedle tego, o co prosił Pan Mirek):<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;uart.h&quot;<br />#include &quot;serwa.h&quot;<br />#include &quot;rf12.h&quot;<br /><br /><br />#define LED1 (1&lt;&lt;PB0)<br />#define LED2 (1&lt;&lt;PB1)<br /><br /><br />//do radiowki<br /><br />        char test&#91;&#93;  = &quot;p&quot;;<br />char test1&#91;&#93; = &quot;l&quot;;<br /><br />void send(void)<br />{<br />static uint8_t a;<br /><br />#if RF12_UseIRQ == 0<br />if( !a ) {<br />rf12_txdata(test, 0);<br />a ^= 1;<br />} else {<br />rf12_txdata(test1, 0);<br />a ^= 1;<br />}<br />#endif<br /><br />#if RF12_UseIRQ == 1<br />if( !a ) {<br />rf12_txstart(test, 0);<br />a ^= 1;<br />} else {<br />rf12_txstart(test1, 0);<br />a ^= 1;<br />}<br />#endif<br />}// deklaracja funkcji send<br /><br /><br /><br />//dotąd<br /><br /><br />int main(void) {<br /><br />//serwo(); //reszte komentuje a to tylko do sterowania serwem<br /><br />DDRB |=LED1; //ustawienie LED jako wyjscie<br />PORTB &amp;= ~LED1; //ustawienie zgaszonej diody<br />DDRB |=LED2; //ustawienie LED jako wyjscie<br />PORTB &amp;= ~LED2; //ustawienie zgaszonej diody<br /><br /><br />USART_Init( MYUBRR );// inicjalizacja UART<br />/*<br /> *W momencie, gdy włączam inicjalizację RF12 przestaje działac UART (dekomentuję ten fragment)<br /> *<br /> *<br />//inicjalizacja radiowki<br />//! inicjalizacja modułu RFM12 ***********<br />rf12_init();// inicjalizacja soft SPI i przerwań jeśli są używane<br />rf12_setrange( ZAKRES_868MHZ );// ustawiamy zakres częstotliwości: 433MHz, 868MHz lub 915MHz<br />//rf12_setfreq( RF12FREQ433(438.00) );// ustalenie częstotliwości nadawania/odbioru (może być np: 432.74)<br />rf12_setfreq( RF12FREQ868(862.00) );// przykład zmiany dla RFM12 na 868MHz - żaden problem ;) (może być np: 875.48)<br />rf12_setbaud(9600);// 19200 ustawienie prędkości - baud rate<br />rf12_setbandwidth(RxBW200, LNA_6, RSSI_79);// ustawienia odbiornika<br />rf12_setpower(PWRdB_0, TxBW120);// 1mW moc wyjściowa nadajnika, parametry FSK<br />rf12_disablewakeuptimer();// wyłączamy Wakeup Timer<br />rf12_trans(0x0000);// odczyt statusu - start modułu rfm12<br />//rf12_trans(0xCC77);// jeśli posiadasz RFM12B (wesja SMD) odblokuj tę linię<br />//! inicjalizacja modułu RFM12 ***********<br /><br />//dotad<br />*/<br />sei();// globalne odblokowanie przerwań<br />//itoa() - zamienia int na char<br />//atoi() - zamienia czar na int i to to powinno byc uzyte, bo w koncu przez rs wysyla sie char..<br /><br /><br />        char pytanie;<br /><br /><br />        while (1){<br />        pytanie = uart_getc();<br /><br /><br />        if ( pytanie == 'l'){<br /><br /><br />         uart_puts(&quot;Zrobione!&quot;);<br />         PORTB ^= LED1;<br />        // send();<br />        }<br />        else if ( pytanie == 'p'){<br /><br />         uart_puts(&quot;Zrobione!&quot;);<br />         PORTB ^= LED2;<br />        // send();<br />        }<br /><br />}<br /><br />}[/syntax]<br /><br /><br />Jeśli chodzi o RFM12B używam przerwań INT1_vect (komunikuję ze sobą atmegi8)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9183">Czapek</a> — 24 cze 2015, o 21:10</p><hr />
]]></content>
</entry>
</feed>