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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-06T13:42:29+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13760&amp;mode</id>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-06T13:42:29+01:00</updated>
<published>2015-12-06T13:42:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147177#p147177</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147177#p147177"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147177#p147177"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />Znalazłem to w 15 sekund w google wpisując<br /><br />obsługa 2 uart avr<br /></div><br />Bardzo dziękuję i pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 6 gru 2015, o 13:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-06T13:38:59+01:00</updated>
<published>2015-12-06T13:38:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147175#p147175</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147175#p147175"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147175#p147175"><![CDATA[
<div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">majster napisał(a):</div><div class="quotecontent">Na uC który ma 2 UARTy lub jak wyżej opisałem.<br /></div><br /><br />Rozumiem ideę. Myślę nad stroną programistyczną. Czy dublować wszystkie zdarzenia dla UART i funkcje callback (np. parse_uart_data_gps i parse_uart_data_wifi) i czy potrzebne są dwie biblioteki mkuart1.h i mkuart2.h oddzielnie dla każdego interfejsu, bo jak inaczej wpisać dwie prędkości UART? Nigdy nie korzystałem z 2 UARTów. Muszę się nauczyć <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /></div><br /><br />Zerknij np tutaj:<br /><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic2637.html" >topic2637.html</a><!-- l --><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic10653.html" >topic10653.html</a><!-- l --><br /><br />Znalazłem to w 15 sekund w google wpisując<br /><br /><strong>obsługa 2 uart avr </strong><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 6 gru 2015, o 13:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-06T11:02:42+01:00</updated>
<published>2015-12-06T11:02:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147166#p147166</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147166#p147166"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147166#p147166"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />Na uC który ma 2 UARTy lub jak wyżej opisałem.<br /></div><br /><br />Rozumiem ideę. Myślę nad stroną programistyczną. Czy dublować wszystkie zdarzenia dla UART i funkcje callback (np. parse_uart_data_gps i parse_uart_data_wifi) i czy potrzebne są dwie biblioteki mkuart1.h i mkuart2.h oddzielnie dla każdego interfejsu, bo jak inaczej wpisać dwie prędkości UART? Nigdy nie korzystałem z 2 UARTów. Muszę się nauczyć <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 6 gru 2015, o 11:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-06T10:52:28+01:00</updated>
<published>2015-12-06T10:52:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147165#p147165</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147165#p147165"/>
<title type="html"><![CDATA[Re: Software reset "AT+RST" - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147165#p147165"><![CDATA[
<div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br />Jak realizuje się obsługę dwóch UARTów (4800 i 115200)?<br />Pozdrawiam<br /></div><br /><br />Na uC który ma 2 UARTy lub jak wyżej opisałem.<br /><br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 6 gru 2015, o 10:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-06T08:53:42+01:00</updated>
<published>2015-12-06T08:53:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147158#p147158</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147158#p147158"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147158#p147158"><![CDATA[
Witam!<br />Problem rozwiązałem po analizie prędkości ustawionej w bibliotece UART. GPS-4800. ATB-WIFI-115200. &quot;Fizyczna&quot; zamiana GPS na ATB-WIFI nastąpiła, ale nie zmieniłem prędkości w bibliotece mkuart.h. Po zmianie na 115200 moduł prawidłowo odbiera komendy AT. Teraz zastanawiam się nad obsługą 2xUART np. w Atmega644. Na UART1 odbieram dane z GPS, a na UART2 nasłuchuję komend. Pojawienie się komendy AT-RST? w UART2 ma skutkować resetem programu i możliwością zdalnego programowania. Jak realizuje się obsługę dwóch UARTów (4800 i 115200)?<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 6 gru 2015, o 08:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-05T16:54:48+01:00</updated>
<published>2015-12-05T16:54:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147132#p147132</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147132#p147132"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147132#p147132"><![CDATA[
Bardzo proszę jeszcze raz o sugestię w sprawie niedziałającego software reset w moim programie.<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 5 gru 2015, o 16:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-05T12:34:45+01:00</updated>
<published>2015-12-05T12:34:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147102#p147102</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147102#p147102"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147102#p147102"><![CDATA[
<div class="quotetitle">Rafał555 napisał(a):</div><div class="quotecontent"><br />W module nie masz ustawionej bramy i dns server.<br /></div><br /><br />Dzięki za zwrócenie uwagi. Przy zmianie SERVER na CLIENT się zgubiło. Teraz jest poprawnie jak przed zmianami. DNS i brama ustawione. To nie rozwiązuje problemu. Nadal brak resetu software. Jak przekazać komendę AT+RST z mkBootLoadera do mojego programu? Dane z gps wchodzą do bufora, a z modułu WiFi nie.<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 5 gru 2015, o 12:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-12-05T10:41:38+01:00</updated>
<published>2015-12-05T10:41:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147096#p147096</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147096#p147096"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147096#p147096"><![CDATA[
W module nie masz ustawionej bramy i dns server.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 5 gru 2015, o 10:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-04T23:27:27+01:00</updated>
<published>2015-12-04T23:27:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147089#p147089</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147089#p147089"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147089#p147089"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />A dlaczego masz UDP SERVER wydaje mi sie zo puwinien byc CLIENT<br /></div><br /><br />Z ustawieniem CLIENT nie działa wcale, niestety (sprawdziłem).<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />[syntax=c]oid parse_uart_data( char * uart_buf ) {<br /><br />char * buf;<br />char * buf_rst;<br />char * reszta;<br />char * time, * status, * latitude_val, * latitude_sym, * longitude_val, * longitude_sym, * speed, * course, * data;<br />char * magnetic_var, * magnetic_var_dir;<br />static uint8_t godzina, minuta, sekunda, miesiac, dzien;<br />static uint16_t rok;<br /><br />buf = uart_buf;<br /><br />//if (buf &amp;&amp; (strcmp(buf,&quot;AT+RST?&quot;)== 0))  // Warunek 1<br />if(!strncasecmp(&quot;AT+RST?&quot;, buf, 7))      // Warunek 2<br />{<br />PORTC ^= (1&lt;&lt;PC7);<br /><br />cli();          // disable interrupts<br />wdt_enable(0);  // set watchdog, &lt;avr/wdt.h&gt;<br />while(1);    // wait for reset<br />}<br /><br /><br />if(gps_read_flag){<br /><br />buf = strtok_r(uart_buf,&quot;,&quot;,&amp;reszta);<br /><br />//PORTC &amp;= ~(1&lt;&lt;PC7);<br /><br />        if (buf &amp;&amp; (strcmp(buf,&quot;$GPRMC&quot;) == 0)){<br /><br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Cas: hhmmss */<br />            time = buf;<br /><br />            gps_read_flag = 0;<br />            synchro_layer.visible = 0;<br />            first_sync = 0;<br />//            PORTC |= (1&lt;&lt;PC7);<br />            PORTC ^= (1&lt;&lt;PC7);<br />            cli();<br />            ws_cls(linijka1, 0);<br />            sei();[/syntax]<br /><br />W linii 16 dioda nie zmienia stanu w odpowiedzi na polecenie AT+RST? z programu mkBootLoader.<br />W linii 40 dioda zmienia stan co zadany okres synchronizacji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 4 gru 2015, o 23:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-04T22:58:11+01:00</updated>
<published>2015-12-04T22:58:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147085#p147085</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147085#p147085"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147085#p147085"><![CDATA[
A dlaczego masz UDP SERVER wydaje mi sie zo puwinien byc CLIENT<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 4 gru 2015, o 22:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-04T22:38:59+01:00</updated>
<published>2015-12-04T22:38:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147082#p147082</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147082#p147082"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147082#p147082"><![CDATA[
<a href="https://obrazkiforum.atnel.pl/9310/b63e2b370aefb70229988395275072e5.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/b63e2b370aefb70229988395275072e5.png" alt="Obrazek" /></a><a href="https://obrazkiforum.atnel.pl/9310/daf93842ccd9506f57c54b5a8cbb30ab.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/daf93842ccd9506f57c54b5a8cbb30ab.png" alt="Obrazek" /></a><a href="https://obrazkiforum.atnel.pl/9310/f2350d8160cdb6417848e0139be72ef1.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/f2350d8160cdb6417848e0139be72ef1.png" alt="Obrazek" /></a><br /><a href="https://obrazkiforum.atnel.pl/9310/04d066063b67aebb83ffe8e9c2779beb.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/04d066063b67aebb83ffe8e9c2779beb.png" alt="Obrazek" /></a><a href="https://obrazkiforum.atnel.pl/9310/9f5a8217364704aed331e9603715bd8d.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/9f5a8217364704aed331e9603715bd8d.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 4 gru 2015, o 22:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-04T22:03:07+01:00</updated>
<published>2015-12-04T22:03:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147071#p147071</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147071#p147071"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147071#p147071"><![CDATA[
nie czepiaj się kolego programu a tego jak skonfigurowałeś ATB WIFI pokaż no konfiguracje<br /><br />co do debuggera ... tam gdzie chcesz odebrać dane .... jak cokolwiek odbierze niech zmieni swój stan na przeciwny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 4 gru 2015, o 22:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-04T21:54:31+01:00</updated>
<published>2015-12-04T21:54:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147070#p147070</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147070#p147070"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147070#p147070"><![CDATA[
To jest znakomity pomysł. Obecnie jednak funkcja sprawnie parsuje dane z gps, a po jego odłączeniu gdy próbuję coś wpisać do bufora (np. AT+RST?) - echa w terminalu brak. Chciałby wiedzieć dlaczego dane z gps &quot;wchodzą&quot; do bufora, a z programu mkBootLoader nie. W którym miejscu programu zrobić pułapkę, debugger jednodiodowy, aby to sprawdzić?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 4 gru 2015, o 21:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-04T21:38:34+01:00</updated>
<published>2015-12-04T21:38:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147068#p147068</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147068#p147068"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147068#p147068"><![CDATA[
<div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br />Nie mam jeszcze nawet pomysłu jak to zrealizować programowo i zdalnie.<br /></div><br /><br />No to jeszcze raz powtórzę jak bym zrealizował połączenie nawet gdy podłączone będą oba urządzenia GPS i WIFI<br /><br /><div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />ja bym stworzył jedną funkcję:<br />UART_RX_STR_EVENT( uart_buf );<br /><br />parsował dane odbioru i prawdzał czy to pochodzi z GPS czy WIFI<br />nie mniej i tak 2 urządzenia na jednym uarcie ci nie zadziałają no chyba że zabierzesz zasilanie modułowi GPS na starcie a uaktywnisz je 2 sekundy po starcie programu tak aby wifi przez pierwsze 2 sekundy miało zasilanie.... a jak podasz zasilanie do GPS to zabierasz dla WIFI<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 4 gru 2015, o 21:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-04T20:49:43+01:00</updated>
<published>2015-12-04T20:49:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147055#p147055</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147055#p147055"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147055#p147055"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />Za dużo masz funkcji w jednym pliku pomieszanych od różnych modułów przez co kod staje się mało czytelny i sam zaczynasz się w nim mieszać a co dopiero ktoś kto go widzi po raz pierwszy.<br /></div><br />Dzięki wielkie za zainteresowanie. Zdaję sobie sprawę, że kod jest bardzo przerośnięty, ale powstawał od kwietnia i rozrastał się wraz z &quot;lekturą&quot; poradników Mirka. Wszystko działa bardzo sprawnie i nieblokująco oprócz resetu programowego, który chciałem zaimplementować jedynie na potrzebę programowania zdalnego.<br /><div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />w ten sposób będziesz miał 2 urządzenia na 1 uarcie ale tylko jedno z nich w danym czasie by działało.<br /></div><br />Docelowo ma być tak. Gdzieś w pokoju stoi zegar gps z modułem Atnel WiFi. Odłączam gps. Podłączam WiFi. Wprowadzam zmiany w programie i wpisuję je zdalnie do zegara. Odłączam WiFi. Podłączam gps. Nie mam jeszcze nawet pomysłu jak to zrealizować programowo i zdalnie.<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 4 gru 2015, o 20:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-04T19:00:55+01:00</updated>
<published>2015-12-04T19:00:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147042#p147042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147042#p147042"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147042#p147042"><![CDATA[
Zaczynam go studiować będę tutaj uzupełniał na bieżąco to co mi w oko wpadnie ... a lepsi ode mnie bo jest ich 99% forum jak mogą niech też pomogą <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Na początek usuń linię 6 z #include &lt;avr/delay.h&gt; co prawda nie zawadza ale biblioteka z avr przeniosła się do util a masz ją w 4 linii.<br /><br />w pętli while masz coś jak get ntp event który jest uzależniony od timera itp<br /><br />polecam w pętli while sprawdzać zdarzenie z uart jak używasz Mirka bibliotek to: UART_RX_STR_EVENT( uart_buf );<br /><br />generalnie nigdy nie wpadnie ci ramka z wifi do get ntp event<br /><br />ja bym stworzył jednąfunkcję:<br />UART_RX_STR_EVENT( uart_buf );<br /><br />parsował dane odbioru i prawdzał czy to pochodzi z GPS czy WIFI<br />nie mniej i tak 2 urządzenia na jednym uarcie ci nie zadziałają no chyba że zabierzesz zasilanie modułowi GPS na starcie a uaktywnisz je 2 sekundy po starcie programu tak aby wifi przez pierwsze 2 sekundy miało zasilanie.... a jak podasz zasilanie do GPS to zabierasz dla WIFI<br /><br />w ten sposób będziesz miał 2 urządzenia na 1 uarcie ale tylko jedno z nich w danym czasie by działało.<br /><br />Za dużo masz funkcji w jednym pliku pomieszanych od różnych modułów przez co kod staje się mało czytelny i sam zaczynasz się w nim mieszać a co dopiero ktoś kto go widzi po raz pierwszy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 4 gru 2015, o 19:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-04T17:42:59+01:00</updated>
<published>2015-12-04T17:42:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147035#p147035</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147035#p147035"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147035#p147035"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />No to musisz mieć jakiegoś babola w programie którego nie widać ...<br /></div><br /><br />Proszę przejrzyj kod jeżeli będziesz tak miły, bardzo proszę:<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 />#include &lt;stdlib.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;avr/wdt.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;MK_USART/mkuart.h&quot;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;MK_PCF8583/mk_pcf8583.h&quot;<br />#include &quot;1Wire/ds18x20.h&quot;<br />#include &quot;IR_UNI/ir_config.h&quot;<br />#include &quot;buf_lcd.h&quot;<br />#include &quot;warstwy.h&quot;<br />#include &quot;zs_common.h&quot;<br />#include &quot;WS2812/ws281x.h&quot;<br />#include &quot;MK_MAGIC_FX/mk_magic_fx.h&quot;<br /><br />// SPI hardware - ustawienia<br />#define MOSI PB5//   &lt;---- A (SER IN)<br />#define SCK PB7//   &lt;---- SHIFT CLOCK (SC)<br />#define CS PB4// &lt;---- LATCH CLOCK (LC)<br /><br />const uint8_t Display&#91;6&#93; PROGMEM = {1,2,4,8,16,32}; // wybór wyświetlacza<br />const uint8_t Cyfra&#91;&#93; PROGMEM = {<br />0x03,// 0<br />0x9F,// 1<br />0x25,// 2<br />0x0D,// 3<br />0x99,// 4<br />0x49,// 5<br />0x41,// 6<br />0x1B,// 7<br />0x01,// 8<br />0x09,// 9<br /><br />0x02,// 0<br />0x9E,// 1<br />0x24,// 2<br />0x0C,// 3<br />0x98,// 4<br />0x48,// 5<br />0x40,// 6<br />0x1A,// 7<br />0x00,// 8<br />0x08,// 9<br />};<br /><br />TWSRGB ws_rgb_leds&#91;WS_LED_CNT&#93;;<br />// tworzymy wskaźnik pokazujący na pierwszy element tablicy TWSRGB (ws_rgb_leds)<br />// trzeba zrobić jawne rzutowanie bo linijka1 jest typu uint8_t, a ws_rgb_leds typu TWSRGB<br />uint8_t *linijka1 = (uint8_t*)ws_rgb_leds;<br /><br />volatile int cy1, cy2, cy3, cy4;<br />volatile uint16_t Timer1, Timer2, Timer3, Timer4, Timer5;<br />int8_t xt;<br />uint8_t cy2_temp, gps_read_flag, first_sync, sig, lms10=255, ams_cnt=0;<br />uint32_t ms100_tick, czas;<br />char uart_buf&#91;100&#93;;<br /><br />TWIN transparent_layer;<br />TWIN temp_layer;<br /><br />// *********  własna funkcja do obsługi podczerwieni  ************<br />// podłączona/zarejestrowana dla zdarzenia IR_EVENT()<br />void ir_decode(uint8_t adr, uint8_t cmd, uint8_t key_time);<br />// obsługa sprzętowego SPI<br />void InitSpi(void);<br />void SendSpi( uint8_t bajt );<br />void disp_send( uint8_t cyfra, uint8_t segment);<br />void parse_uart_data( char * uart_buf );<br />void pokazuj_date_czas(TDATETIME *dt);<br />void GetGPSTime_EVENT(volatile uint16_t *tmr_100ms, uint8_t ss, uint8_t mm, uint8_t hh, void (*timer_kropka)(void));<br />void zs_delay (uint16_t ms);<br /><br />int main(void)<br />{<br />DDRC |= (1&lt;&lt;PC7);<br />PORTC |= (1&lt;&lt;PC7);<br /><br />SoftTimer_init();<br /><br />InitSpi();<br />SendSpi(0);<br /><br />USART_Init(__UBRR);<br />register_uart_str_rx_event_callback(parse_uart_data);<br /><br />ir_init();<br />register_ir_event_callback(ir_decode);<br /><br />init_rtc();<br />register_rtc_event_callback(pokazuj_date_czas);<br /><br />buf_lcd_init();<br /><br />create_obj(&amp;mainwin_layer,0,0,COLS,ROWS,1,NULL);<br />create_obj(&amp;ir_mon_layer,2,0,4,1,0,0);<br />create_obj(&amp;alarm_layer,2,3,8,1,0,alarm_event);<br />create_obj(&amp;synchro_layer,0,0,COLS,ROWS,0,synchro_event);<br />create_obj(&amp;temp_layer,0,0,COLS,ROWS,1,NULL);<br />create_obj(&amp;transparent_layer,0,0,9,4,1,0);<br /><br />active_buf=transparent_layer.buf;<br /><br />buf_cls();<br />buf_locate(0,0);<br />buf_str_P(PSTR(&quot;ZEGAR^GPS&quot;));<br />//buf_fill('Z',1);<br />//buf_fill('E',1);<br />//buf_fill('G',1);<br />//buf_fill('A',1);<br />//buf_fill('R',1);<br />//buf_fill(' ',1);<br />//buf_fill('G',1);<br />//buf_fill('P',1);<br />//buf_fill('S',1);<br />buf_locate(1,0);<br />buf_str_P(PSTR(&quot;\xff^^^\xff&quot;));<br />buf_locate(2,0);<br />buf_str_P(PSTR(&quot;\xff^^^\xff&quot;));<br />buf_locate(1,0);<br />buf_str_P(PSTR(&quot;^^^^^^^^^&quot;));<br />buf_locate(2,0);<br />buf_str_P(PSTR(&quot;^^^^^^^^^&quot;));<br />//buf_locate(3,0);<br />//buf_fill(255,9);<br />buf_locate(3,0);<br />buf_str_P(PSTR(&quot;^^^^^^^^^^^^^^^^&quot;));<br /><br />ws_cls(linijka1, 0);<br /><br />// wstępna inicjalizacja pozycji warstwy alarm_layer<br />w1x=alarm_layer.x;<br />w1y=alarm_layer.y;<br /><br />/* sprawdzamy ile czujników DS18xxx widocznych jest na magistrali */<br />czujniki_cnt = search_sensors();<br />DS18X20_start_meas( DS18X20_POWER_EXTERN, NULL );<br />/* czekamy 750ms na dokonanie konwersji przez podłączone czujniki */<br />_delay_ms(1500);<br />lcd_cls();<br /><br />/* dokonujemy odczytu temperatury z pierwszego czujnika o ile został wykryty */<br />/* wyświetlamy temperaturę gdy czujnik wykryty */<br />if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;0&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(14);<br />else {<br />buf_locate(1,13);<br />buf_str(&quot; error &quot;);<br />}<br />/* dokonujemy odczytu temperatury z drugiego czujnika o ile został wykryty */<br />/* wyświetlamy temperaturę gdy czujnik wykryty */<br />if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;1&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp2(14);<br />else {<br />buf_locate(2,13);<br />buf_str(&quot; error &quot;);<br />}<br /> tcl=0;<br /> sei();<br /><br />//set_rtc_datetime(&amp;datetime, 0, 0, 0, 0, 0, 0);<br />first_sync = 1;<br /><br />while(1){<br /><br />lcd_defchar_P(0x80,znak_stopien);<br />lcd_defchar_P(0x81,znak_termometr);<br />lcd_defchar_P(0x82,l_pl);<br />lcd_defchar_P(0x83,S_pl);<br />lcd_defchar_P(0x84,a_pl);<br /><br />UART_RX_STR_EVENT(uart_buf);<br />RTC_EVENT();<br />//GetGPSTime_EVENT(&amp;Timer3, 0, 1, 0, migaj_kropka_minutowa);<br />GetGPSTime_EVENT(&amp;Timer3, 98, 0, 0, NULL);<br /><br />IR_EVENT();<br />BARREL_EVENT(1);<br /><br />if(!Timer1) cy2 = cy2_temp + 10;<br /><br />if( lms10 != ms10_cnt ) {<br />if( ++ams_cnt &gt; 49 ) {<br /><br />transparent_layer.x=xt;<br />if(!sig) {<br />xt+=1;<br />if(xt&gt;20) sig^=1;<br />} else {<br />xt-=1;<br />if(xt&lt;-6) sig^=1;<br />}<br />ams_cnt=0;<br />}<br />lms10=ms10_cnt;<br />}<br />}<br />}<br /><br />ISR(TIMER2_COMP_vect)<br />{<br />static uint16_t n;<br />static uint8_t anoda;<br />if(anoda == 0) disp_send(~(pgm_read_byte(&amp;Display&#91;0&#93;)), (pgm_read_byte(&amp;Cyfra&#91;cy4&#93;)));<br />else if(anoda == 1) disp_send(~(pgm_read_byte(&amp;Display&#91;1&#93;)), (pgm_read_byte(&amp;Cyfra&#91;cy3&#93;)));<br />else if(anoda == 2) disp_send(~(pgm_read_byte(&amp;Display&#91;2&#93;)), (pgm_read_byte(&amp;Cyfra&#91;cy2&#93;)));<br />else if(anoda == 3) disp_send(~(pgm_read_byte(&amp;Display&#91;3&#93;)), (pgm_read_byte(&amp;Cyfra&#91;cy1&#93;)));<br />anoda++;<br />if(anoda &gt; 3) anoda = 0;<br /><br />n = Timer1;<br />if(n) Timer1 = --n;<br />n = Timer2;<br />if (n) Timer2 = --n;<br />n = Timer3;<br />if (n) Timer3 = --n;<br />n = Timer4;<br />if (n) Timer4 = --n;<br />n = Timer5;<br />if (n) Timer5 = --n;<br />}<br /><br />void InitSpi(void) {<br />/* ustawienie kierunku wyjściowego dla linii MOSI, SCK i CS */<br />DDRB |= (1&lt;&lt;MOSI)|(1&lt;&lt;SCK)|(1&lt;&lt;CS);<br />/* aktywacja  SPI, tryb pracy Master, prędkość zegara Fosc/64 */<br />SPCR |= (1&lt;&lt;SPE)|(1&lt;&lt;MSTR)|(1&lt;&lt;SPR1);<br />}<br /><br />void SendSpi( uint8_t bajt ) {<br />/* wysyłamy bajt do układu Slave */<br />SPDR = bajt;<br />/* czekamy aż zostanie wysłany ostatni bit */<br />while( !(SPSR &amp; (1&lt;&lt;SPIF)) );<br /><br />/* zbocze narastające sygnału „Latch Clock” powoduje<br /> * przepisanie wartości rejestru do wyjść Qa - Qh */<br />PORTB |= (1&lt;&lt;CS);<br />/* odczekanie 1 us – czas trwania impulsu LE */<br />_delay_us(1);<br />/* przywracamy stan niski na linii LE dzięki czemu<br /> * podczas wysyłania następnego bajtu nie będą widoczne zmiany<br /> * na wyjściach Qa-Qh podczas przesuwania się rejestru do czasu<br /> * ponownego zatrzaśnięcia całego bajtu */<br />PORTB &amp;= ~(1&lt;&lt;CS);<br />}<br /><br />void disp_send( uint8_t cyfra, uint8_t anoda){<br /><br />     SPDR = cyfra;<br />     while( !(SPSR &amp; (1&lt;&lt;SPIF)) );<br />     SPDR = anoda;<br />     while( !(SPSR &amp; (1&lt;&lt;SPIF)) );<br />     // zatrzaskiwanie po wysłaniu 2 bajtów<br />     PORTB |= (1&lt;&lt;CS);<br />     PORTB &amp;= ~(1&lt;&lt;CS);<br />}<br /><br />void pokazuj_date_czas(TDATETIME *dt){<br /><br />active_buf = mainwin_layer.buf;<br />Timer1 = 100;<br /><br />cy1 = (dt-&gt;hh) / 10;<br />cy2_temp = (dt-&gt;hh) % 10;<br />cy2 = cy2_temp;<br />cy3 = (dt-&gt;mm) / 10;<br />cy4 = (dt-&gt;mm) % 10;<br /><br />buf_locate(1,2);<br />buf_str(dt-&gt;time);<br />//buf_locate(2,3);<br />//buf_str(dt-&gt;date);<br />buf_locate(2,1);<br />if((dt-&gt;DD)&lt;10) buf_str(&quot;0&quot;);<br />buf_int(dt-&gt;DD);<br />buf_locate(2,3);<br />buf_str(&quot;.&quot;);<br />buf_locate(2,4);<br />if((dt-&gt;MM)&lt;10) buf_str(&quot;0&quot;);<br />buf_int(dt-&gt;MM);<br />buf_locate(2,6);<br />buf_str(&quot;.&quot;);<br />buf_locate(2,7);<br />buf_int((uint16_t)dt-&gt;YY);<br />//buf_locate(2,16);<br />//buf_str_P(&amp;dni&#91;dt-&gt;weekday * 4&#93;);<br />buf_locate(3,1);<br />buf_str_P((const char *)pgm_read_word(&amp;napisy_dni&#91;dt-&gt;weekday&#93;));<br />buf_locate(3,18);<br />if((czas-ms100_tick)&lt;10) buf_str(&quot;0&quot;);<br /><br />buf_int(czas-ms100_tick);<br />//buf_str(&quot; S&quot;&quot;\x83&quot;);<br />buf_str(&quot; &quot;);<br />//buf_locate(1,13);<br />//buf_str(&quot;\x81&quot;); /* wyświetl znak termometru */<br />//buf_locate(2,13);<br />//buf_str(&quot;\x81&quot;); /* wyświetl znak termometru */<br />}<br /><br />void display_temp(uint8_t x) {<br /><br />active_buf = temp_layer.buf;<br /><br />buf_locate(1,0);<br />buf_str(&quot;^^^^^^^^^^^^^^^^^^^^&quot;);<br /><br />buf_locate(1,x);<br />//buf_int(x);<br />//buf_locate(2,x);<br />if(subzero) buf_str(&quot;-&quot;);/* jeśli subzero==1 wyświetla znak minus (temp. ujemna) */<br />else buf_str(&quot;&quot;);/* jeśli subzero==0 wyświetl spację zamiast znaku minus (temp. dodatnia) */<br />buf_int(cel);/* wyświetl dziesiętne części temperatury  */<br />buf_str(&quot;.&quot;);/* wyświetl kropkę */<br />buf_int(cel_fract_bits); /* wyświetl dziesiętne części stopnia */<br />buf_str(&quot;\x80&quot;&quot;C&quot;); /* wyświetl znak jednostek (C - stopnie Celsiusza) */<br />//lcd_str(&quot;\x80&quot;); /* wyświetl znak jednostek (C - stopnie Celsiusza) */<br /><br /><br />buf_locate(1,13);<br />buf_str(&quot;\x81&quot;); /* wyświetl znak termometru */<br />//buf_locate(2,13);<br />//buf_str(&quot;\x81&quot;); /* wyświetl znak termometru */<br /><br /><br />}<br /><br />void display_temp2(uint8_t x) {<br /><br />active_buf = temp_layer.buf;<br /><br />buf_locate(2,0);<br />buf_str(&quot;^^^^^^^^^^^^^^^^^^^^&quot;);<br />buf_locate(3,0);<br />buf_str(&quot;^^^^^^^^^^^^^^^^^^^^&quot;);<br /><br />buf_locate(2,x);<br />//buf_int(x);<br />//buf_locate(2,x);<br />if(subzero) buf_str(&quot;-&quot;);/* jeśli subzero==1 wyświetla znak minus (temp. ujemna) */<br />else buf_str(&quot;&quot;);/* jeśli subzero==0 wyświetl spację zamiast znaku minus (temp. dodatnia) */<br />buf_int(cel);/* wyświetl dziesiętne części temperatury  */<br />buf_str(&quot;.&quot;);/* wyświetl kropkę */<br />buf_int(cel_fract_bits); /* wyświetl dziesiętne części stopnia */<br />buf_str(&quot;\x80&quot;&quot;C&quot;); /* wyświetl znak jednostek (C - stopnie Celsiusza) */<br />//lcd_str(&quot;\x80&quot;); /* wyświetl znak jednostek (C - stopnie Celsiusza) */<br /><br />buf_locate(2,13);<br />buf_str(&quot;\x81&quot;); /* wyświetl znak termometru */<br /><br />}<br /><br />void parse_uart_data( char * uart_buf ) {<br /><br />char * buf;<br />char * buf_rst;<br />char * reszta;<br />char * time, * status, * latitude_val, * latitude_sym, * longitude_val, * longitude_sym, * speed, * course, * data;<br />char * magnetic_var, * magnetic_var_dir;<br />static uint8_t godzina, minuta, sekunda, miesiac, dzien;<br />static uint16_t rok;<br /><br />buf = uart_buf;<br /><br />//if (buf &amp;&amp; (strcmp(buf,&quot;AT+RST?&quot;)== 0))  // Warunek 1<br />if(!strncasecmp(&quot;AT+RST?&quot;, buf, 7))      // Warunek 2<br />{<br />cli();          // disable interrupts<br />wdt_enable(0);  // set watchdog, &lt;avr/wdt.h&gt;<br />while(1);    // wait for reset<br />}<br /><br /><br />if(gps_read_flag){<br /><br />buf = strtok_r(uart_buf,&quot;,&quot;,&amp;reszta);<br /><br />PORTC &amp;= ~(1&lt;&lt;PC7);<br /><br />        if (buf &amp;&amp; (strcmp(buf,&quot;$GPRMC&quot;) == 0)){<br /><br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Cas: hhmmss */<br />            time = buf;<br /><br />            gps_read_flag = 0;<br />            synchro_layer.visible = 0;<br />            first_sync = 0;<br />            PORTC |= (1&lt;&lt;PC7);<br />            cli();<br />            ws_cls(linijka1, 0);<br />            sei();<br /><br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Status: A/V */<br />            status = buf;<br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Szerokość geograficzna: wartość */<br />            latitude_val = buf;<br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Szerokość geograficzna: N/S */<br />            latitude_sym = buf;<br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />/* Długość geograficzna: wartość */<br />            longitude_val = buf;<br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Długosść geograficzna: W/E */<br />            longitude_sym = buf;<br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Prędkość wobec ziemi */<br />               speed = buf;<br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Kurs wobec ziemi */<br />               course = buf;<br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Data: ddmmrr */<br />              data = buf;<br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Magnetic variation:  */<br />              magnetic_var = buf;<br />            buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta);<br />            /* Magnetic variation direction and mode:  */<br />              magnetic_var_dir = buf;<br /><br />    char hh&#91;3&#93;, mm&#91;3&#93;, ss&#91;3&#93;;<br />char DD&#91;3&#93;, MM&#91;3&#93;, YY&#91;3&#93;;<br />static char dane_godziny&#91;6&#93;;<br />static char dane_daty&#91;6&#93;;<br /><br />for(uint8_t i=0;i&lt;6;i++){<br />    dane_godziny&#91;i&#93; = *(time++);<br />    }<br /><br />    hh&#91;0&#93; = dane_godziny&#91;0&#93;;<br />    hh&#91;1&#93; = dane_godziny&#91;1&#93;;<br />    hh&#91;2&#93; = 0;<br /><br />    mm&#91;0&#93; = dane_godziny&#91;2&#93;;<br />    mm&#91;1&#93; = dane_godziny&#91;3&#93;;<br />    mm&#91;2&#93; = 0;<br /><br />    ss&#91;0&#93; = dane_godziny&#91;4&#93;;<br />    ss&#91;1&#93; = dane_godziny&#91;5&#93;;<br />    ss&#91;2&#93; = 0;<br /><br />    for(uint8_t i=0;i&lt;6;i++){<br />    dane_daty&#91;i&#93; = *(data++);<br />    }<br /><br />    DD&#91;0&#93; = dane_daty&#91;0&#93;;<br />    DD&#91;1&#93; = dane_daty&#91;1&#93;;<br />    DD&#91;2&#93; = 0;<br /><br />    MM&#91;0&#93; = dane_daty&#91;2&#93;;<br />    MM&#91;1&#93; = dane_daty&#91;3&#93;;<br />    MM&#91;2&#93; = 0;<br /><br />    YY&#91;0&#93; = dane_daty&#91;4&#93;;<br />    YY&#91;1&#93; = dane_daty&#91;5&#93;;<br />    YY&#91;2&#93; = 0;<br /><br />    godzina = atoi(hh);<br />    dzien = atoi(DD);<br />    godzina = godzina + 2;<br />    if (24 == godzina) godzina = 0, dzien = dzien + 1;<br />    if (25 == godzina) godzina = 1;<br />    if (26 == godzina) godzina = 2;<br />    //itoa(godzina,hh,10);<br />    minuta = atoi(mm);<br />    sekunda = atoi(ss);<br /><br />    rok = atoi(YY);<br />    rok = rok + 2000;<br />    miesiac = atoi(MM);<br /><br />    }<br /><br />    set_rtc_datetime(&amp;datetime, rok, miesiac, dzien, godzina, minuta, sekunda);<br /><br />    }<br />}<br /><br />void GetGPSTime_EVENT(volatile uint16_t *tmr_100ms, uint8_t ss, uint8_t mm, uint8_t hh, void (*timer_kropka)(void)){<br /><br />//static uint32_t ms100_tick;<br />uint32_t co_ile_czasu = (ss*10ul/10) + (mm*60ul*10ul/10) + (hh*60ul*60ul*10ul/10);<br /><br />if(first_sync) co_ile_czasu = 60;<br />czas = co_ile_czasu;<br /><br />if(!*tmr_100ms){<br /><br />ms100_tick++;<br /><br />if(ms100_tick &gt; co_ile_czasu){<br />synchro_layer.visible = 1;<br />ms100_tick = 0;<br />gps_read_flag = 1;<br /><br />ws_line(linijka1, 5, 16, 0x1F0000);<br />cli();<br />ws281x_asm_send( linijka1, WS_LED_CNT, WS_PIN);<br />sei();<br />}<br /><br />if(timer_kropka) timer_kropka();<br />*tmr_100ms = 199;<br />}<br />}<br /><br />// *********  własna funkcja do obsługi podczerwieni  ************<br />// podłączona/zarejestrowana dla zdarzenia IR_EVENT()<br />void ir_decode(uint8_t adr, uint8_t cmd, uint8_t key_time) {<br /><br />show_ir_mon(cmd);<br /><br />if(0==key_time) {<br />// zmiana pozycji warstwy alarm_layer na ekranie LCD<br />if(6==cmd) w1x++;<br />if(2==cmd) w1y--;<br />if(8==cmd) w1y++;<br />if(4==cmd) w1x--;<br />// pokaż/scheowaj warstwę alarm_layer<br />if(0x34==cmd) alarm_layer.visible ^= 1;<br />// pokaż MENU<br />if(1==cmd) main_menu();<br />}<br />// na wszelki wypadek ponownie rejestrujemy tę funkcję, gdyby<br />// w trackie została wywołana inna i podmieniła wskaźnik<br />register_ir_event_callback(ir_decode);<br />}<br /><br />void zs_delay (uint16_t ms){<br />while(ms--){<br />_delay_ms(1);<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 4 gru 2015, o 17:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-04T17:36:20+01:00</updated>
<published>2015-12-04T17:36:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147034#p147034</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147034#p147034"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147034#p147034"><![CDATA[
No to musisz mieć jakiegoś babola w programie którego nie widać ...<br /><br />skoro ci działa w dawcy czasu to gdzieś coś źle przeniosłeś do aktualnego projektu.<br /><br />a dołączyłeś ? w main.c ??<br /><br />[syntax=c]#include &lt;avr/wdt.h&gt;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 4 gru 2015, o 17:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-04T17:33:54+01:00</updated>
<published>2015-12-04T17:33:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147032#p147032</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147032#p147032"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147032#p147032"><![CDATA[
<div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br />No ale przecież ci odczytało info o procku czyli AT+RST musiał się wykonać.<br /></div><br /><br />Tak, ale po wciśnięciu klawisza RESET na żądanie programu., niestety.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 4 gru 2015, o 17:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-04T17:29:47+01:00</updated>
<published>2015-12-04T17:29:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147031#p147031</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147031#p147031"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147031#p147031"><![CDATA[
<div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br /><a href="https://obrazkiforum.atnel.pl/9310/4b3da51938c7cea98275a13f82257738.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/4b3da51938c7cea98275a13f82257738.png" alt="Obrazek" /></a><br /></div><br /><br /><br />No ale przecież ci odczytało info o procku czyli AT+RST musiał się wykonać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 4 gru 2015, o 17:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-04T17:12:36+01:00</updated>
<published>2015-12-04T17:12:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147028#p147028</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147028#p147028"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147028#p147028"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />Kolego a w mkbootloader zaznaczasz ze ma uzyc AT+RST ? Ppdajesz w MKB adres ip wifi by komputer sie z nim polaczyl ? Nawiazujesz polaczenie MKB z Wifi ?<br /></div><div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />Po tym wnosze ze masz oba naraz podpiete uarty do uc bo skoro nadlatuja dane GPS a w nich nie widac AT+RST.<br /><br />No ale ok.<br /><br />Kolego a w mkbootloader zaznaczasz ze ma uzyc AT+RST ? Ppdajesz w MKB adres ip wifi by komputer sie z nim polaczyl ? Nawiazujesz polaczenie MKB z Wifi ?<br /></div><br /><br />Bootloader zainstalowany. W ATB-WiFi pełny dostęp do modułu. Na czas testu z software reset gps odłączony, a do Tx i Rx uC podłączony tylko AtnelAir i ATBWiiFi. W tej samej kombinacji sprzętowej działa zegar NTP i pozyskuje czas z internetu i w nim implementacja software reset działa.<br /><a href="https://obrazkiforum.atnel.pl/9310/4b3da51938c7cea98275a13f82257738.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/4b3da51938c7cea98275a13f82257738.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 4 gru 2015, o 17:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-04T16:57:03+01:00</updated>
<published>2015-12-04T16:57:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147027#p147027</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147027#p147027"/>
<title type="html"><![CDATA[Re: Software reset "AT+RST" - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147027#p147027"><![CDATA[
<div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br />umieszczam na początku funkcji parsującej dane z GPS. Terminal &quot;zalewany&quot; jest potokiem danych z GPS, ale spodziewanej odpowiedzi na AT+RST brak (mkBootLoader).<br /></div><br /><br />Po tym wnosze ze masz oba naraz podpiete uarty do uc bo skoro nadlatuja dane GPS a w nich nie widac AT+RST.<br /><br />No ale ok.<br /><br />Kolego a w mkbootloader zaznaczasz ze ma uzyc AT+RST ? Ppdajesz w MKB adres ip wifi by komputer sie z nim polaczyl ? Nawiazujesz polaczenie MKB z Wifi ?<br /><br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 4 gru 2015, o 16:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-04T16:21:33+01:00</updated>
<published>2015-12-04T16:21:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147023#p147023</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147023#p147023"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147023#p147023"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />Ale z gwiazdą to się wstrzymaj  aż do świąt<br /></div><br />Do Świąt nie wytrzymam. Proszę o pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 4 gru 2015, o 16:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-04T11:43:58+01:00</updated>
<published>2015-12-04T11:43:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147011#p147011</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147011#p147011"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147011#p147011"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />Kolego coś mi świta że ty na jednym UART podłączasz 2 urządzenia.<br />1 to GPS<br />2 to ATBWIFI lub ft232 lub jeszcze co innego<br /></div><br /><br />W tym konkretnym przypadku do uC Atmega32 podłączony jest ATB-WiFi. Program wgrany do uC to program obsługi zegara GPS. GPS jest jednak odłączony do testów. Do bufora nic nie nadlatuje z GPS. Chciałem do programu dodać reset programowy. Oczekiwałem, że po wciśnięciu INFO w programie mkBootLoader do bufora wpadnie komenda AT+RST i wykona co trzeba, ale tak nie jest.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 4 gru 2015, o 11:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-12-04T11:35:05+01:00</updated>
<published>2015-12-04T11:35:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147010#p147010</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147010#p147010"/>
<title type="html"><![CDATA[Re: Software reset &quot;AT+RST&quot; - problem z implementacją]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13760&amp;p=147010#p147010"><![CDATA[
Kolego coś mi świta że ty na jednym UART podłączasz 2 urządzenia.<br />1 to GPS<br />2 to ATBWIFI lub ft232 lub jeszcze co innego <br /><br />I za pomocą 1 UART w uC chcesz odbierać dane z PC i GPS czyli pomyśl co w tym momencie robisz ?<br /><br />Wiem że do Swiąt lekko ponad 2 tygodnie ale ty robisz gwiazdę. A do czego służy UART czyli port szeregowy ?<br /><br />Jeżeli tak to podłączasz to zainteresuj się np ATmega128 ona ma 2 UARTy jeszcze kilka innych mniejszych zapewne też.<br /><br />Ale z gwiazdą to się wstrzymaj <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> aż do świąt <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 4 gru 2015, o 11:35</p><hr />
]]></content>
</entry>
</feed>