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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-04-02T11:35:42+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=22132&amp;mode</id>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2019-04-02T11:35:42+01:00</updated>
<published>2019-04-02T11:35:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22132&amp;p=217888#p217888</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22132&amp;p=217888#p217888"/>
<title type="html"><![CDATA[Re: UART+Power down - problem z restartami procka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22132&amp;p=217888#p217888"><![CDATA[
I tak się zdobywa najcenniejsza wiedzę i doświadczenie <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=2511">Jarecki</a> — 2 kwi 2019, o 11:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szymanskim]]></name></author>
<updated>2019-04-02T11:31:06+01:00</updated>
<published>2019-04-02T11:31:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22132&amp;p=217887#p217887</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22132&amp;p=217887#p217887"/>
<title type="html"><![CDATA[Re: UART+Power down - problem z restartami procka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22132&amp;p=217887#p217887"><![CDATA[
Sprawa się wyjaśniła, że tego wcześniej zauważyłem usypanie przeniosłem do pętli głównej - usypiałem w przerywaniu i w ten sposób ze stosu nie były brane parametry = stos się przepełniał<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17916">szymanskim</a> — 2 kwi 2019, o 11:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szymanskim]]></name></author>
<updated>2019-04-01T10:03:34+01:00</updated>
<published>2019-04-01T10:03:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22132&amp;p=217843#p217843</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22132&amp;p=217843#p217843"/>
<title type="html"><![CDATA[UART+Power down - problem z restartami procka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22132&amp;p=217843#p217843"><![CDATA[
Cześć,<br />Od dobrych paru dni testuje swój program na Atmega328P, który znajdzie się w układzie zasilanym bateryjnie.<br />Dla celów diagnostycznych używam UART do wyświetlania danych. Zauważyłem jednak dziwny problem.<br />Mam sytuację  gdzie układ wchodzi w tryb POWER_DOWN i jest wybudzany przez watchdoga i w procdedurze przerywaniu<br />wysyłam coś na UART. W trakcie działania program wchodzi w obsługę przerywania 60-80 razy po czym  następuje restart procka (=widzę komunikat rozpoczynający program)!<br />Pytanie co właściwie jest nie tak, bibloteka do UART to prawie niezodyfikowana biloteka jaka była w bluebooku. <br />Jeśli miałbym coś podejrzewać to problemy ze stosem, ale może problem jest zupełnie inny tylko jaki?<br />Może ktoś ma wskazówki jak diagnozować takie problemy?  <br />Poniżej  skrócony kawałek oprogramowania w którym wystepuje problem z restartem.<br /><br />[syntax=c]..............<br />// Ustawienie portow<br />#define LED_PIN (1&lt;&lt;PB0)// definicja pinu do ktorego podlaczona jest dioda<br />#define LED_TOG PORTB ^= LED_PIN// zmiana stanu diody<br /><br />// initializacja USART<br />#define UART_BAUD 9600   // UWAGA!! Maksymalna predkosc przy 1MHz to 4800<br />#define __UBRR ((F_CPU+UART_BAUD*8UL) / (16UL*UART_BAUD)-1)<br /><br />volatile uint8_t ID_DEVICE=1;// identyfikator urzadzenia wysylajacego<br /><br />char nrf_buf&#91;60&#93;;<br /><br />int main( void ) {<br /><br />// initializacja portu B<br />DDRB |= LED_PIN ;// kierunek pinow wyjsciowych<br /><br />// Initializacja UARTa<br />uart_init(__UBRR);<br />uart_puts(&quot;Start czujnika v.2.10, going sleep.. ..\r\n&quot;);<br /><br />    MCUSR = 0;      // MCU status register, informuje co bylo powodem resetu<br />    wdt_disable();// wylaczenie watchdoga<br />    wdt_reset();// reset licznika watchdoga<br /><br />    WDTCSR = (1&lt;&lt;WDCE)|(1&lt;&lt;WDE);   // Ustawienie przerywan watchdoga<br />    WDTCSR = (1&lt;&lt;WDIE) |(1&lt;&lt;WDP2)|(1&lt;&lt;WDP0)|(1&lt;&lt;WDCE);  // 0.5s<br /><br />// wlacza wszystkie przerywania<br />sei();<br />_delay_ms(1000);<br /><br />set_sleep_mode ( SLEEP_MODE_PWR_DOWN);   // ustawia MCUCR i EMCUCR<br />sleep_mode();  // makro wejscie w uspienie<br /><br />while(1) {<br />}<br />}<br /><br />// Obsluga przerywania wywolywana przez WD<br />ISR(WDT_vect)<br />{<br />sei();<br />LED_TOG;<br />sprintf(nrf_buf, &quot;id=%d\r\n&quot;, ID_DEVICE );<br />uart_puts(nrf_buf);<br />ID_DEVICE++;<br />_delay_ms(100);   // czekam na wyslanie przez UART<br /><br />// Uspienie procka<br />sleep_enable();<br />sleep_cpu();<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 55 minutach ]</span></strong><br /><br />Prawdę mówiąc sprawdzę jeszcze w domu po restarcie wskazania MCUSR może coś więcej się dowiem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17916">szymanskim</a> — 1 kwi 2019, o 10:03</p><hr />
]]></content>
</entry>
</feed>