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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12517&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-08-06T10:37:11+01:00</updated>
<published>2015-08-06T10:37:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136545#p136545</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136545#p136545"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136545#p136545"><![CDATA[
Wiesz ja bym może jakoś się odniósł do tego kodu ale ....<br /><br />sorki KOMPLETNIE nie rozumiem o co chodzi ? tzn co to oznacza na przykład?<br /><div class="quotetitle">michal93 napisał(a):</div><div class="quotecontent"><br />Siła złego na jednego ... co teraz, jest dobrze ?<br /></div><br /><br />albo<br /><br /><div class="quotetitle">michal93 napisał(a):</div><div class="quotecontent"><br />Podbijam,<br /></div><br /><br />czyli co ? działa u ciebie czy nie działa ? - jeśli będziesz zadawał bardziej jasne pytania na forum, to pewnie więcej osób coś podpowie - bo chyba jak widać po ilościach odpowiedzi - nie tylko ja mam problem ze zrozumieniem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 sie 2015, o 10:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michal93]]></name></author>
<updated>2015-08-06T10:00:08+01:00</updated>
<published>2015-08-06T10:00:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136541#p136541</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136541#p136541"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136541#p136541"><![CDATA[
Podbijam, chyba kod nie jest zbyt rozbudowany, by ktoś mógł coś podpowiedzieć. Naprawiłem błędy zgodnie z sugestiami z poprzednich postów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9964">michal93</a> — 6 sie 2015, o 10:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michal93]]></name></author>
<updated>2015-08-05T11:00:46+01:00</updated>
<published>2015-08-05T11:00:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136456#p136456</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136456#p136456"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136456#p136456"><![CDATA[
Siła złego na jednego ... co teraz, jest dobrze ? <br /><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;mkuart.h&quot;<br /><br />// w mkuart.h mam podefiniowane jak poniżej :<br />#define UART_DE_NADAWANIE  UART_DE_PORT |= UART_DE_BIT<br />#define UART_DE_ODBIERANIE  UART_DE_PORT &amp;= ~UART_DE_BIT<br />// <br /><br /> <br />int main (void)<br />{<br />     // inicjalizacja<br />       USART_Init( __UBRR );  // uatomatycznie ustawia mi DE na ODBIERANIE ( z zielonej ksiązki ) <br />        sei();<br />        char kod_odbioru='&amp;';   //  na ten znak ma iść odpowiedź z atmegi :) <br />        char odbior;<br /> <br />   while(1){                          // kod obsługujący pomiary w pętli<br />   <br />            // pomiary z czujników ...<br /> <br /> <br />                       while(dana=uart_getc(void)) {     // Jak przechwycić czy coś przyszło ?  (0-brak danych)<br /> <br />                                    odbior=dana;<br />                                    }<br /> <br />                     if(odbior==kod_odbioru){<br /><br />                            UART_DE_NADAWANIE;   // sam to ustawiam bo funkcja linie niżej tego nie robi <br />                            uart_putint(pomiar1,10);   // wysyłam, gdy doszło zapytanie z kodem 123<br />                            UART_DE_ODBIERANIE;    // stan nadawania tylko na czas wysyłania danych, wiec teraz stan niski  <br />                        }<br /> <br />                       odbior='0';  //zerowanie po wysłaniu danych ( inna zawartość zmiennej niż kod odbioru..)<br /> <br />        }  // koniec while(1)<br /> <br />   <br />     <br /> <br /> <br />}<br />GeSHi[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9964">michal93</a> — 5 sie 2015, o 11:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-08-04T22:16:07+01:00</updated>
<published>2015-08-04T22:16:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136388#p136388</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136388#p136388"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136388#p136388"><![CDATA[
<div class="quotetitle">michal93 napisał(a):</div><div class="quotecontent"><br />. Chyba nie o to się rozchodzi,<br /></div><br />Wiesz - tak się składa, że ja dobrze wiem o co się rozchodzi i powtórzę to jeszcze raz - zanim dalej zabrniesz w RS485 - poćwicz najpierw do końca RS232 ... bo i z tym dopiero zaczynasz/raczkujesz - a tu wkopujesz się jeszcze w kierowanie kierunkiem przepływu, którego nawet nie próbujesz uwzględniać w kodzie ...<br /><br />Poza tym - właśnie ta niby drobnostka &quot;odbiór i parsowanie stringów&quot; ....<br /><br />Nieprzypadkowo akurat ten temat zostawiłem na drugą książkę (Greenbooka) i to na ostatni rozdział .... A w Bluebooku poruszyłem tylko temat prawidłowego podejścia do buforowania cyklicznego o obsługi RS232 na przerwaniach ...<br /><br />Ale spokojnie - nawet jeśli nie masz jeszcze GB to też można sobie - być może prostszymi metodami ale zrobić odbiór stringów - warto poćwiczyć - tyle, że ten twój kod z góry jest kompletnie odstający od rzeczywistości C, szczególnie gdy próbujesz stosować typy jak z C++<br /><br />[syntax=c]string odbior=&quot; &quot;;   //  (pusty)[/syntax]<br /><br />string - skąd taki typ w C ?<br /><br />albo<br /><br />[syntax=c]odbior+=dana;[/syntax]<br /><br />jeszcze raz mówię - poćwicz na razie w ogóle obsługę stringów w C, a jeśli chcesz zobaczyć jak inni czytelnicy zmagali się i często z pozytywnym skutkiem z jakimiś prostymi formami odbioru stringów w C (jeszcze przed GB) to poszperaj na forum bo zamieszczali tu swoje kody ...<br /><br />Za to później jak zdobędziesz GB to zobaczysz - jak powinno się do tego podchodzić i dlaczego wtedy jest to bardzo proste ...<br /><br /><br />Zresztą pooglądaj sobie kilka poradników moich o WIFI to zobaczysz jak wykorzystuję odbiór stringów i ich parsowanie w oparciu o zdarzenia i callbacki - jakie to może być przyjemne, proste - .... wtedy można się skupić na programowaniu a nie ciągłym pisaniu obsługi rs232/485<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 sie 2015, o 22:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michal93]]></name></author>
<updated>2015-08-04T22:16:20+01:00</updated>
<published>2015-08-04T22:00:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136387#p136387</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136387#p136387"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136387#p136387"><![CDATA[
Panie Mirku, ja to pisałem z ręki , strcmp() porównuje stringi, takie rzeczy się poprawi. Chyba nie o to się rozchodzi, tylko o poprawne zgranie tego rs485 z programem w pętli...<br /><br />Wiem, że to działać nie będzie, bo to musi być prawdziwe przerwanie. Coś w stylu SerialEvent() w Arduino ( funkcja sama sie wywołuje gdy coś przyjdzie na port szeregowy), a ja tutaj mam pętle która robi się 1 sekunde  i na koncu sprawdza czy coś przyszło.(?) Dobrze rozumiem ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9964">michal93</a> — 4 sie 2015, o 22:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-08-04T21:48:54+01:00</updated>
<published>2015-08-04T21:48:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136386#p136386</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136386#p136386"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136386#p136386"><![CDATA[
<div class="quotetitle">michal93 napisał(a):</div><div class="quotecontent"><br />if(odbior=='123'){<br /></div><br />Kolega sobie sam przeczyta tę linię - która nawet nie chce się skompilować a wręcz krzyczy warningami kompilator. Jeśli robisz to &quot;na sucho&quot; te lepiej próbuj &quot;na mokro&quot; czyli na żywo - szybciej będziesz się uczył .... bo w tej jednej linijce pokazujesz, że na razie kompletnie nie rozumiesz jeszcze np co to są Stringi, dokładniej mówiąc C-Stringi - a bez tego panie ani rusz<br /><br />więc zajrzyj do Bluebooka i zobacz czym się różni apostrof od cudzyłowia ? co umieszczamy w apostrofie a co w cudzysłowie? i dlaczego w C nie da się w ten sposób porównać stringa ? ... oraz poczytaj o funkcjach wbudowanych takich jak np strcmp() i podobnych<br /><br />wtedy zrobi się jaśniej - ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 sie 2015, o 21:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michal93]]></name></author>
<updated>2015-08-04T21:44:00+01:00</updated>
<published>2015-08-04T21:44:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136384#p136384</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136384#p136384"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136384#p136384"><![CDATA[
Pytam o prosty kod, do wysłania jednego bitu/bajtu przez ten rs. W książce Pana Mirka przeczytałem rozdział o tym, mam mkuart. Nie wciskajcie mi od razu modbusa, bo nie od razu Rzym zbudowano, najpierw chce zrobić prostą komunikację. Przeczytajce mój fragment kodu, to musi jakoś podobnie wyglądać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9964">michal93</a> — 4 sie 2015, o 21:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2015-08-03T17:27:46+01:00</updated>
<published>2015-08-03T17:27:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136254#p136254</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136254#p136254"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136254#p136254"><![CDATA[
<div class="quotetitle">michal93 napisał(a):</div><div class="quotecontent"><br />Taki wstępny schemat programu jaki mam w głowie poniżej :<br />Może myślę kompletnie źle ? Proszę o wskazówki tudzież poprawę.<br /></div><br /><br />Listingi wstawiamy w ten sposób: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 3 sie 2015, o 17:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nondzu]]></name></author>
<updated>2015-08-03T14:34:49+01:00</updated>
<published>2015-08-03T14:34:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136230#p136230</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136230#p136230"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136230#p136230"><![CDATA[
również polecam modbusa, sam uruchamiałem go na atmedze32 oraz 128 z bibliotek które podał kolega wyżej (freemodbus).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1672">Nondzu</a> — 3 sie 2015, o 14:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[roll99]]></name></author>
<updated>2015-08-03T13:34:53+01:00</updated>
<published>2015-08-03T13:34:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136222#p136222</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136222#p136222"/>
<title type="html"><![CDATA[Re: Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136222#p136222"><![CDATA[
witam<br /><br />Tworzę w ramach wprawki w programowaniu avr'ow małą bibliotekę do komunikacji modbus, przypuszczam ze byłoby to dla Ciebie rozwiązanie, na PC (win/linux) masz trochę oprogramowania do obsługi modbus'a więc chyba warto. Jak coś zapraszam na priv. Ewentualnie profi napisana biblioteka freemodbus min. dla ATMEG od 8 w górę .<br /><br />pozdrawiam Jurek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7275">roll99</a> — 3 sie 2015, o 13:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michal93]]></name></author>
<updated>2015-08-04T22:01:10+01:00</updated>
<published>2015-08-03T13:10:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136219#p136219</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136219#p136219"/>
<title type="html"><![CDATA[Zaprogramowanie komunikacji Rs485 w obie strony]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12517&amp;p=136219#p136219"><![CDATA[
Mam bilbioteki P.Mirka mkuart, oraz mój program na atmedze32, który robi swoje pomiary. Ponadto podpinam się standardem RS485 do PC, i zastanawia mnie jak programowo w C zrealizować taką komunikację w stylu master-slave. Tzn, powiedzmy, ze gdy z PC pójdzie zapytanie o ustalonej treści np. '123' ( np. ciąg takich znaków), to wtedy tylko atmega ma odpowiedzieć wysyłając wyniki swoich pomiarów.<br /><br />Taki wstępny schemat programu jaki mam w głowie poniżej : <br />Może myślę kompletnie źle ? Proszę o wskazówki tudzież poprawę. <br /><br /><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;mkuart.h&quot;<br /> <br />int main (void)<br />{<br />     // inicjalizacja <br />       USART_Init( __UBRR );<br />        sei();<br />       string odbior=&quot; &quot;;   //  (pusty)<br /> <br /><br />   while(1){                          // kod obsługujący pomiary w pętli <br />    <br />            // pomiary z czujników ... <br /><br /><br />                       while(dana=uart_getc(void)) {     // Jak przechwycić czy coś przyszło ?  (0-brak danych)<br /><br />                                    odbior+=dana;<br />                                    } <br /><br />                     if(odbior==&quot;123&quot;){<br />                            uart_putint(pomiar1,10);   // wysyłam, gdy doszło zapytanie z kodem 123<br />                        }<br /><br />                       odbior=&quot; &quot;;  //zerowanie po wysłaniu danych<br /><br />        }  // koniec while(1) <br /><br />    <br />     <br /><br /> <br />}[/syntax]<br /><br /><br />Jak to się ma do rzeczywistości ? <br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9964">michal93</a> — 3 sie 2015, o 13:10</p><hr />
]]></content>
</entry>
</feed>