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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-04-03T18:53:43+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11266&amp;mode</id>
<entry>
<author><name><![CDATA[Grzegorz...]]></name></author>
<updated>2015-04-03T18:53:43+01:00</updated>
<published>2015-04-03T18:53:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125534#p125534</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125534#p125534"/>
<title type="html"><![CDATA[Re: Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125534#p125534"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Napisać sobie obsługę stringów przychodzących na uart<br /></div><br /><br />Heh. Mam wrażenie, że kolega zakładający wątek ma nadzieję, że wystarczy wysłać taki string do ATNEL-WIFI, a on jakoś &quot;automagicznie&quot; zresetuje procka. Może bezprzewodowo go zresetuje, np. przywali taką moc na 2,4 GHz, że procek zgłupieje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br /><br /><div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br />Dzięki za solidarność. Jak to zrobić na przykładzie kodu, który zaprezentowałem?<br /></div><br /><br />Dostałeś sporo podpowiedzi, a nadal nie zastanawiasz się nad tym, że w ogóle nie odbierasz i nie porównujesz stringów z UARTA.<br />Zrób funkcję, która będzie interpretowała to co dostajesz do procesora poprzez RS i porównuj komendy z taką którą chcesz zresetować uC (nie musi być taka jak u Mirka). Dopiero wtedy będziesz mógł wywołać funkcję uruchamiająca watch doga i uC zresetuje się wywołując bootloader.<br /><br />-- <br />Grzegorz...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1748">Grzegorz...</a> — 3 kwi 2015, o 18:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-04-03T12:21:13+01:00</updated>
<published>2015-04-03T12:21:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125496#p125496</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125496#p125496"/>
<title type="html"><![CDATA[Re: Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125496#p125496"><![CDATA[
<div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br />Jak to zrobić ....<br /></div><br />Napisać sobie obsługę stringów przychodzących na uart<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 kwi 2015, o 12:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-04-03T09:23:11+01:00</updated>
<published>2015-04-03T09:23:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125480#p125480</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125480#p125480"/>
<title type="html"><![CDATA[Re: Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125480#p125480"><![CDATA[
Dzięki za solidarność. Jak to zrobić na przykładzie kodu, który zaprezentowałem?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 3 kwi 2015, o 09:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wirnick]]></name></author>
<updated>2015-04-03T09:36:48+01:00</updated>
<published>2015-04-03T09:07:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125478#p125478</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125478#p125478"/>
<title type="html"><![CDATA[Re: Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125478#p125478"><![CDATA[
Solidaryzuję się z Tobą(avrfun). W wojsku to jest inaczej - BACZNOŚĆ - i wszyscy stoją jak jak wryci, a tu maszyna robi co chce!<br />Otóż komenda zewnętrzna (np. string AT+RST) musi trafić dokładnie między tryba programu(w pętlę nieskończoną) main() i głębiej w while(1) lub jeszcze głębiej. Co ważniejsze musi być znana i mieć wartość logiczną 1(Prawda). Tylko wtedy będzie wykonana funkcja &quot;at_rst_service()&quot;. Ciało funkcji musisz ukryć, by nie była wykonywana po resecie, a deklaracja ma być znana wszem i wobec.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9272">Wirnick</a> — 3 kwi 2015, o 09:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-04-03T08:50:21+01:00</updated>
<published>2015-04-03T08:50:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125474#p125474</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125474#p125474"/>
<title type="html"><![CDATA[Re: Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125474#p125474"><![CDATA[
Rozumiem, że z moim kodem nic nie można zrobić, aby w prosty sposób uzyskać spodziewaną funkcjonalność resetu programowego <img src="https://forum.atnel.pl/images/smilies/icon_neutral.gif" alt=":|" title="Średnio zadowolony" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 3 kwi 2015, o 08:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-04-03T07:59:11+01:00</updated>
<published>2015-04-03T07:59:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125465#p125465</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125465#p125465"/>
<title type="html"><![CDATA[Re: Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125465#p125465"><![CDATA[
<div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br />Jak powinno wyglądać wywołanie funkcji w programie i w którym miejscu je umieścić.<br /></div><br />Wszystko masz w detalach wyjaśnione w zielonej książce (Greenbook), czy nie zauważyłeś że wciąż wspominam o niej i o bibliotece do obsługi UART w poradnikach o wifi ? Wciąż też w tych poradnikach pokazuję jak w kodzie się to robi ... chociażby w tym:<br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=J3kPNmb3wV4" >https://www.youtube.com/watch?v=J3kPNmb3wV4</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 kwi 2015, o 07:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-04-03T07:37:19+01:00</updated>
<published>2015-04-03T07:37:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125464#p125464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125464#p125464"/>
<title type="html"><![CDATA[Re: Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125464#p125464"><![CDATA[
Dziękuję za podpowiedź. Jak powinno wyglądać wywołanie funkcji w programie i w którym miejscu je umieścić. Nie mogę wciąż resetować programowo (string: AT+RST?).<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/wdt.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;MKUART/mkuart.h&quot;<br /><br />void at_rst_service(uint8_t inout, char * params)<br />{<br />    uart_puts(&quot;restart\r\n&quot;);<br />    lcd_cls();<br />    lcd_str(&quot;restart&quot;);<br />    _delay_ms(1500);<br /><br />    //****** RESET UKŁADU NA POTRZEBY BOOTLOADERA (MkBootloader) ***********<br />    cli();                  // wyłącz przerwania<br />    wdt_enable(0);  // ustaw watch-dog<br />    while(1);               // czekaj na RESET<br />}<br /><br />uint16_t pomiar(uint8_t kanal);<br /><br />int main(void)<br />{<br />lcd_init();<br /><br />DDRD |= (1&lt;&lt;PD7);<br />PORTD |= (1&lt;&lt;PD7);<br /><br />ADMUX |= (1&lt;&lt;REFS0);                // wybór napięcia odniesienia w postaci VCC, tab.83, str.214, datasheet<br />ADCSRA |= (1&lt;&lt;ADEN);                // włączenie modułu ADC<br />ADCSRA |= (1&lt;&lt;ADPS1) | (1&lt;&lt;ADPS2);  // wybór preskalera 64, tab.85, str.217, datasheet<br /><br />//WDTCR |= (1&lt;&lt;WDTOE) | (1&lt;&lt;WDE);<br />//wdt_enable(WDTO_1S);<br />//cli();<br /><br />while (1)<br />{<br />lcd_cls();<br />lcd_int( pomiar(5) );<br />_delay_ms(500);<br />}<br />}<br /><br />uint16_t pomiar(uint8_t kanal)<br />{<br />ADMUX |= (ADMUX &amp; 0xF8) | kanal;    // ustawienie wybranego kanału w rejestrze ADMUX<br />ADCSRA |= (1&lt;&lt;ADSC);                // start pomiaru<br />while(ADCSRA &amp; (1&lt;&lt;ADSC));          // oczekiwanie na koniec pomiaru, dopóki bit ADSC=1<br />/* po zakończeniu pomiaru, gdy bit ADSC=0, zwrócenie wyniku w postaci 16-to bitowej wartości z rejestrów ADCH oraz ADCL */<br />return ADCW;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 3 kwi 2015, o 07:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[icer_cmg]]></name></author>
<updated>2015-04-02T23:09:24+01:00</updated>
<published>2015-04-02T23:09:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125458#p125458</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125458#p125458"/>
<title type="html"><![CDATA[Re: Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125458#p125458"><![CDATA[
Watchdoga powinieneś odpalić wewnątrz jakiejś funkcji, a nie od tak sobie. Teraz WD pracuje w ciele programu głównego i dlatego tak jest. <br /><br />Oto przykład funkcji:<br />[syntax=c]void at_rst_service(uint8_t inout, char * params) {<br /><br />uart_puts(&quot;restart\r\n&quot;);<br />lcd_cls();<br />lcd_str(&quot;restart&quot;);<br />_delay_ms(1500);<br /><br />//****** RESET UKŁADU NA POTRZEBY BOOTLOADERA (MkBootloader) ***********<br />cli();// wyłącz przerwania<br />wdt_enable(0);  // ustaw watch-dog<br />while(1);// czekaj na RESET[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1636">icer_cmg</a> — 2 kwi 2015, o 23:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-04-02T23:02:26+01:00</updated>
<published>2015-04-02T23:02:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125457#p125457</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125457#p125457"/>
<title type="html"><![CDATA[Re: Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125457#p125457"><![CDATA[
W procedurze odbioru danych z UART'a ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 kwi 2015, o 23:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-04-02T22:55:36+01:00</updated>
<published>2015-04-02T22:55:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125456#p125456</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125456#p125456"/>
<title type="html"><![CDATA[Watchdog problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11266&amp;p=125456#p125456"><![CDATA[
Witam!<br />Chcę zaimplementować obsługę &quot;software reset&quot; w ATmega32 do resetowania go z poziomu mkBootoader AT+RST? Nagłówek załączyłem &lt;avr/wdt.h&gt;, wdt_enable(WDTO_15MS) wdt zaincjalizowałem, cli() wisałem, ale pozostaje problem nieskończonej pętli while(1) oczekującej na reset. Gdzie ją umieścić? Przykład załączenia powyższych poleceń w kodzie - efekt jest taki, że procesr resetuje się co 15ms i błyska podświetlenie LCD:<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;avr/wdt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;lcd44780.h&quot;<br /><br />uint16_t pomiar(uint8_t kanal);<br /><br />/*----------------------------------WATCHDOG początek----------------------------------- */<br />wdt_enable(WDTO_15MS); // inicjalizacja watchdog<br />cli(); // wyłączenie przerwań<br />while(1); //  pętla nieskończona w oczekiwaniu na reset mam nadzieję programowy, gdzie powinna być nie wiem!<br />/*----------------------------------WATCHDOG koniec----------------------------------- */<br /><br />int main(void)<br />{<br />lcd_init();<br /><br />ADMUX |= (1&lt;&lt;REFS0); // wybór napięcia odniesienia w postaci VCC, tab.83, str.214, datasheet<br />ADCSRA |= (1&lt;&lt;ADEN); // włączenie modułu ADC<br />ADCSRA |= (1&lt;&lt;ADPS1) | (1&lt;&lt;ADPS2); // wybór preskalera 64, tab.85, str.217, datasheet<br /><br />while (1)<br />{<br />lcd_cls();<br />lcd_int( pomiar(5));<br />_delay_ms(1000);<br />  }<br />}<br /><br />uint16_t pomiar(uint8_t kanal)<br />{<br />ADMUX |= (ADMUX &amp; 0xF8) | kanal; // ustawienie wybranego kanału w rejestrze ADMUX<br />ADCSRA |= (1&lt;&lt;ADSC);             // start pomiaru przez ustawienie bitu ADCS w rejestrze ADCSRA<br />while(ADCSRA &amp; (1&lt;&lt;ADSC));       // oczekiwanie na koniec pomiaru (dopóki bit ADSC=1)<br />/* po zakończeniu pomiaru gdy bit ADSC=0, zwrócenie wyniku w postaci 16-to bitowej wartości z rejestru ADCH i ADCL*/<br />return ADCW;<br />}[/syntax]<br /><br />Proszę bardzo o pomoc w poprawieniu kodu. Chcę program wgrać do mikrokontroler za pomocą mkBootloader'a i resetować go komendą AT+RST?<br /><br />Pozdrawiam Janek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 2 kwi 2015, o 22:55</p><hr />
]]></content>
</entry>
</feed>