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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-03T17:15:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=19736&amp;mode</id>
<entry>
<author><name><![CDATA[janek9971]]></name></author>
<updated>2017-12-03T17:15:13+01:00</updated>
<published>2017-12-03T17:15:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199928#p199928</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199928#p199928"/>
<title type="html"><![CDATA[Re: Watchdog reset]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199928#p199928"><![CDATA[
@Xentis <br />Przetestuję tę opcję<br /><br />@rskup<br />Chodzi Ci o &quot;wdt_disable()&quot; napisany w taki sposób?<br /><br />[syntax=c]int main(void) {<br /><br />wdt_disable();<br />while (1) {<br /><br />}<br /><br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 10 minutach ]</span></strong><br /><br />Dobra już znalazłem.<br /><br />Dodałem ten kod co podrzuciłeś mi w linku i działa jak trzeba. Teraz widzę, że Mirek o tym pisał na blogu. Sam się śmiałem jak we vlogach Mirek mówi o ludziach którzy nie czytają do końca, a zrobiłem dokładnie to samo <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />[syntax=c]void __init3( void ) __attribute__ (( section( &quot;.init3&quot; ), naked, used ));<br />void __init3( void )<br />{<br />    /* wyłączenie watchdoga (w tych mikrokontrolerach, w których watchdog<br />     * ma możliwość generowania przerwania pozostaje on też aktywny po<br />     * resecie) */<br /><br />    MCUSR = 0;<br />    WDTCSR = (1&lt;&lt;WDCE) | (1&lt;&lt;WDE);<br />    WDTCSR = 0;<br />}[/syntax]<br /><br />A co do WDTON to w mkAVR Calculator wydaje się być wyłączony.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18123">janek9971</a> — 3 gru 2017, o 17:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-12-03T12:59:56+01:00</updated>
<published>2017-12-03T12:59:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199919#p199919</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199919#p199919"/>
<title type="html"><![CDATA[Re: Watchdog reset]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199919#p199919"><![CDATA[
Czy na samym początku programu po starcie kasujesz watchdoga, bo restart przez niego nie wyłącza go. Więc musisz go natychmiast wyłączyć, by się nie zresetował procesor ponownie.<br />Jeżeli to nie pomaga, to problemem jest za długie startowanie (wykonywanie funkcji dokładanych przez kompilator). Więc zastosuj się do rady xentis-a lub korzystaj z dłuższego czasu watchdoga - trochę dłużej poczekasz na reset, ale czy 15ms czy 100 ms, to chyba nie jest widoczna różnica.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 3 gru 2017, o 12:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-12-03T12:49:03+01:00</updated>
<published>2017-12-03T12:49:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199918#p199918</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199918#p199918"/>
<title type="html"><![CDATA[Re: Watchdog reset]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199918#p199918"><![CDATA[
Niektóre procki mają opcję WDTON która to opcja właśnie powoduje takie zachowanie jak opisujesz. Więc albo w fusach ją wyłącz albo skorzystaj z porady Mirka dostępnej tu <a href="http://atnel.pl/mkbootloader.html"  class="postlink">http://atnel.pl/mkbootloader.html</a> na dole strony sekcja wyróżniona na czerwono &quot;KOLEJNA UWAGA&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 3 gru 2017, o 12:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janek9971]]></name></author>
<updated>2017-12-03T12:19:10+01:00</updated>
<published>2017-12-03T12:19:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199916#p199916</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199916#p199916"/>
<title type="html"><![CDATA[Watchdog reset]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19736&amp;p=199916#p199916"><![CDATA[
Witam,<br /><br />Mam pytanie odnośnie tzw. programowego RESETU.<br /><br />Tutaj cytat z bloga Pana Mirka:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Spójrz więc na kod poniżej i spróbuj powiedzieć co on ma za zadanie?<br /><br />[syntax=c]wdt_enable(WDTO_15MS );<br />cli();<br />while(1);[/syntax]<br />-------------------------------------------<br />Jak się domyślasz w pierwszej linii uruchamiamy Watchdoga. W drugiej linii wyłączamy przerwania, bo gdzieś może w którymś z nich mogło być pozostawione polecenie wdt_disable() albo wdt_reset(), więc mamy pewność że żadne z nich się nie wykona <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> a następnie w trzeciej linii tworzymy pętlę nieskończoną, która także nie zawiera wyłączenia czy też zresetowania watchdoga. Ustawiliśmy możliwie najkrótszy czas do przepełnienia timera (ilość dostępnych czasów zależy od wersji procka jakim się posługujemy). A zatem gdy ta pętla będzie się wykonywać, to podziała ona tylko przez 15 ms i CIACH, nastąpi RESET procesora. Tak tak - to właśnie najprostszy sposób na programowy RESET procesora i to prawidłowy reset procesora. Dlatego dobrze go sobie zapamiętaj bo czasem może ci się przydać<br /></div><br /><br />Oraz również kod z komend_at Pana Mirka<br /><br />[syntax=c]int8_t at_rst_service( uint8_t inout, char * params ) {<br /><br />    uart_puts( &quot;za 1.5s - restart\r\n&quot; );<br /><br /><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 />    return 0;<br />}[/syntax]<br /><br />Niestety obie te opcje nie działają w moim przypadku prawidłowo, może nie rozumiem ich działania ale spodziewałem się, że wykona to RESET procesora i tyle. Jednak gdy uruchamiam tę komendę to uC wpada w nieskończone Resetowanie się cały czas, nawet jak chcę wgrać nowy program to niestety się nie wgra bo cały czas jest reset i nie przerwie go tylko dalej się resetuje. Muszę wtedy odłączać zasilanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18123">janek9971</a> — 3 gru 2017, o 12:19</p><hr />
]]></content>
</entry>
</feed>