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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-02-14T21:08:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=14523&amp;mode</id>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2016-02-14T21:08:54+01:00</updated>
<published>2016-02-14T21:08:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153678#p153678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153678#p153678"/>
<title type="html"><![CDATA[Re: Własna funkcja zamiast _delay_()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153678#p153678"><![CDATA[
Ciągle się kręcę po wybranych rozdziałach i umknęło mi to. <br />Teraz już wszystko jasne. Dziękuje bardzo.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 14 lut 2016, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-02-14T20:14:15+01:00</updated>
<published>2016-02-14T20:14:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153669#p153669</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153669#p153669"/>
<title type="html"><![CDATA[Re: Własna funkcja zamiast _delay_()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153669#p153669"><![CDATA[
<div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />iałeś na myśli timery użyte przy cyklicznym odczycie temperatury z DS1820 z wykorzystaniem modulo??<br /></div><br />Panie kochany - nie mów, że nie zajrzałeś do NAJWAŻNIEJSZEGO rozdziału w tym zakresie<br /><br />&quot;Wstęp do systemów czasu rzeczywistego&quot; w którym to masz pokazane jeszcze inne podejście do timerów programowych, z którego prawie co drugi czytelnik już korzysta a tu na forum masz mnóstwo przykładów w kodach różnych userów ....<br /><br />zajrzyj że pan do tego rozdziału i zobacz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> zajrzyj mówię ci<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 lut 2016, o 20:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tmichal24]]></name></author>
<updated>2016-02-14T19:19:33+01:00</updated>
<published>2016-02-14T19:19:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153660#p153660</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153660#p153660"/>
<title type="html"><![CDATA[Re: Własna funkcja zamiast _delay_()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153660#p153660"><![CDATA[
Wykorzystanie timerów programowych opisane jest również na blogu Mirka przy obsłudze przycisków. Zobacz tutaj <a href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-zwoka-czasowa-cd3.html"  class="postlink">http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-zwoka-czasowa-cd3.html</a> . Polecam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1651">tmichal24</a> — 14 lut 2016, o 19:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2016-02-14T18:09:41+01:00</updated>
<published>2016-02-14T18:09:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153655#p153655</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153655#p153655"/>
<title type="html"><![CDATA[Re: Własna funkcja zamiast _delay_()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153655#p153655"><![CDATA[
Widziałem przedstawiany przez ciebie sposób ale on jednak bazuje na _delay_() <br />Wracając do programowych timerów z książki.<br />Miałeś na myśli timery użyte przy cyklicznym odczycie temperatury z DS1820 z wykorzystaniem modulo??<br />Jeżeli tak to oczywiście znam już tą metodę i zaczynam co raz częściej stosować.<br />Nie wiem jednak jak można by takiego sposobu użyć jednorazowo w funkcji main.<br /><br />[syntax=c]zrób jedno<br />poczekaj<br />zrób drugie <br />poczekaj<br />zrób trzecie[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 14 lut 2016, o 18:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-02-14T15:22:17+01:00</updated>
<published>2016-02-14T15:22:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153648#p153648</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153648#p153648"/>
<title type="html"><![CDATA[Re: Własna funkcja zamiast _delay_()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153648#p153648"><![CDATA[
Jak się mówi, że funkcja jest blokująca to absolutnie nie chodzi o blokowanie przerwań a tylko i wyłącznie o blokowanie programu - np pętli głównej ...<br /><br />Jeśli w programie nic innego się nie dzieje jak piszesz to już bym wolał użyć: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/post153631.html#p153631" >post153631.html#p153631</a><!-- l --> <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 lut 2016, o 15:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2016-02-14T13:06:05+01:00</updated>
<published>2016-02-14T13:06:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153638#p153638</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153638#p153638"/>
<title type="html"><![CDATA[Re: Własna funkcja zamiast _delay_()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153638#p153638"><![CDATA[
Użyłem timera sprzętowego bo użyć musiałem. To że akurat ten, dlatego że mogę na nim mieć przerwanie właśnie co sekundę. Zgodzę się że to marnotrawienie ale skoro akurat do niczego więcej nie jest potrzebny to czemu nie?<br />Trafiłeś w sedno o które miałem wątpliwość. Ta funkcja jest nadal blokująca ale czy aby na pewno w 100%?<br />Co jeśli wykorzystam ją w programie gdzie będę wykorzystywał Uart. Czy przerwanie od Uarta będzie mogło w czasie trwania tej funkcji wykonać swoją robotę ? Lub przy przerwaniu INT czy one będzie blokowane przez ten czas ?<br />Dziękuje za informację i wracam do lektury BB <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=2382">tomson5</a> — 14 lut 2016, o 13:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-02-14T12:20:04+01:00</updated>
<published>2016-02-14T12:20:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153629#p153629</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153629#p153629"/>
<title type="html"><![CDATA[Re: Własna funkcja zamiast _delay_()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153629#p153629"><![CDATA[
Po pierwsze to powiedz - tzn zastanów się sam ... czym się różni twoja funkcja od _dela_ms() i w czym jest lepsza?<br /><br />Ja bym powiedział, że owszem różni się tym, że nie dość, że marnujesz żeby nie powiedzieć marnotrawisz timer sprzętowy i to jeszcze o zgrozo timer 16-bitowy .... to twoja funkcja nadal jest tak samo blokująca jak _delay_ms() ...<br /><br />Druga poważna wada to marnotrawienie cennych timerów sprzętowych na funkcje odliczające całe sekundy ?<br /><br />Panie skunda dla timera sprzętowego to wieczność nie wspomnę już o minutach ... To tak jakbyś chciał obliczać czas przelotu statku kosmicznego pomiędzy dwoma galaktykami na sekundniku ? czy jest sens ? widzisz skalę ?<br /><br />W podpisie widać, że masz Bluebooka - zajrzyj proszę do opisu timerów programowych. Wprawdzie do ich przygotowania również potrzebny będzie jakiś timer sprzętowy (ale zaledwie 8-bitowy wystarczy) .... to nie dość że zrealizujesz sobie takich timerów programowych ile chcesz, to każdy z nich będzie mógł sobie tykać np co sekundę, co kilkanaście sekund czy co kilkadziesiąt minut albo co kilka dni<br /><br />ale nie to jest ważne - dzięki timerom programowym nie będziesz blokował działania programu tak jak to teraz tą funkcją chcesz zrobić ... co spowoduje sytuację jak w przysłowiu &quot;zamienił stryjek siekierkę na kijek&quot;<br /><br />Jeśli zaś będziesz miał problem ze zrozumieniem działania timera programowego z BB (pokazanego tam na kilka różnych sposobów) to wtedy śmiało dopytaj ... KAŻDY, KAŻDY kto zrozumiał timery programowe w 8-bitowcach nie może już bez nich żyć i się obejść.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 lut 2016, o 12:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2016-02-14T12:06:16+01:00</updated>
<published>2016-02-14T12:06:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153625#p153625</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153625#p153625"/>
<title type="html"><![CDATA[Własna funkcja zamiast _delay_()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14523&amp;p=153625#p153625"><![CDATA[
Potrzebuję użyć kilku sekundowych opóźnień.<br />Napisałem taką funkcję opartą o timer która ma to zadanie spełnić.<br />Funkcja działa a ja chciałbym się upewnić czy to jest dobre rozwiązanie??<br /><br />[syntax=c]//funkcja delay<br />void czekaj(uint8_t sekund)<br />{<br />   sekunda = 0; //po wejsciu do funkcji ma zacząć liczyć od zera<br />   while(sekunda &lt; sekund) //pętla wykonuje się dopóki sekunda jest mniejsza od ilosci sekund<br /> {<br /><br />}<br /> }<br />//koniec funkcji[/syntax]<br /><br />[syntax=c]ISR(TIMER1_COMPA_vect)<br />{<br /><br /><br />sekunda++;<br />s1_flag=1;<br />if(sekunda == 59)<br />{<br />sekunda = 0;<br />minuta++;<br />}<br />if(minuta == 2)<br />{<br />send_flag = 1;<br />minuta =0;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 14 lut 2016, o 12:06</p><hr />
]]></content>
</entry>
</feed>