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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-04-12T16:10:04+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11356&amp;mode</id>
<entry>
<author><name><![CDATA[gordon10]]></name></author>
<updated>2015-04-12T16:10:04+01:00</updated>
<published>2015-04-12T16:10:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11356&amp;p=126281#p126281</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11356&amp;p=126281#p126281"/>
<title type="html"><![CDATA[Re: Timery programowe - próba &quot;uproszczenia kodu&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11356&amp;p=126281#p126281"><![CDATA[
Dziękuje Wam koledzy za solidne wyjaśnienie tematu. <br />Myślę, że wyprostowaliście moje błędne pojęcie o uproszczeniach w kodzie i pseudo-optymalizacji oraz naprowadziliście na dobre tory:)<br />Wniosek jest taki, że lepiej jednak przesadnie nie oszczędzać na pamięci i mieć szybciej działający program (oczywiście to zależy od założeń projektu). <br />Najlepsza jest zasada &quot;złotego środka&quot; żeby ani pięty, ani nos zbytnio nie zmarzły:)<br /><br />Jeszcze raz Wielkie Dzięki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=968">gordon10</a> — 12 kwi 2015, o 16:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-04-12T13:05:36+01:00</updated>
<published>2015-04-12T13:05:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11356&amp;p=126265#p126265</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11356&amp;p=126265#p126265"/>
<title type="html"><![CDATA[Re: Timery programowe - próba &quot;uproszczenia kodu&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11356&amp;p=126265#p126265"><![CDATA[
<div class="quotetitle">gordon10 napisał(a):</div><div class="quotecontent"><br />Dlaczego tak się dzieje (że zajmuje więcej FLASH-a)?<br /></div><br />Widzisz pan - tu przydaje się znajomość asemblera, mówię o nim w kilku swoich poradnikach o łączeniu C z ASM i warto by chociaż je sobie obejrzeć to już by ci dużo dało .... masz po kompilacji plik *.lss właśnie w asm i możesz tam zajrzeć do procedury obsługi przerwania po swojej niestety &quot;nieudanej&quot; optymalizacji i zobaczyć czym to się różni ....<br /><br /><div class="quotetitle">gordon10 napisał(a):</div><div class="quotecontent"><br />Czy moje rozwiązanie wykonuje się wolniej niż &quot;Mirkowe&quot; z BlueBooka?<br /></div><br />To nie jest tylko twój pomysł, mnóstwo osób wpada na taką &quot;ala optymalizację&quot; i ten temat był i jest często wałkowany nawet na tym forum, czasem warto poszukać - ale przypominam ze stoickim spokojem - że działa to co zrobiłeś wolniej i to TYM wolniej im więcej takich timerów programowych sobie utworzysz, a to rozwiązanie z BB działa wiele szybciej a ma to SZCZEGÓLNE znaczenie w mechanizmie napędzania timerów programowych szczególnie gdy chcesz uzyskać jak najkrótsze czasy.<br /><br /><div class="quotetitle">gordon10 napisał(a):</div><div class="quotecontent"><br />Czy można przyjąć taką (prostą) zależność, że im program zajmuje mniej FLASH-a, tym jest bardziej zoptymalizowany (i szybciej się wykonuje)?<br /></div><br />Absolutnie nie można globalnie takiego założenia przyjąć i co gorsza NIE ZAWSZE słowo OPTYMALIZACJA oznacz to samo. Czasem zależy nam na optymalizacji czasu i robimy to np KOSZTEM pamięci FLASH (co dokładnie opisuję na fajnym wydaje mi się przykładzie w Greenbooku - gdy pokazuję jak zrobić programową obsługę magistrali audio I2S), ale podobnie w poradnikach video na YT o magic LED'ach.<br /><br />Innym razem potrzebujemy optymalizacji pamięci FLASH czy RAM nawet kosztem czasu, który może nie być najważniejszy w tych aspektach projektu itp itd<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 12 kwi 2015, o 13:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gordon10]]></name></author>
<updated>2015-04-12T12:23:33+01:00</updated>
<published>2015-04-12T12:23:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11356&amp;p=126262#p126262</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11356&amp;p=126262#p126262"/>
<title type="html"><![CDATA[Timery programowe - próba &quot;uproszczenia kodu&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11356&amp;p=126262#p126262"><![CDATA[
Witam, <br /><br />Ostatnio testowałem timery programowe z BlueBooka i wpadłem na pomysł, że może wprowadzę pewne uproszczenie (tak jakby optymalizację) kodu w przerwaniu ISR(TIMER2 COMP vect)<br /><br />Zamiast kodu:<br />[syntax=c]ISR(TIMER2_COMP_vect) {<br />uint16_t x;<br />x = Timer1;<br />if (x) Timer1 = --x;<br />x = Timer2;<br />if (x) Timer2 = --x<br />/*...itd...*/<br />}[/syntax]<br /><br />Zastosowałem taki zapis:<br />[syntax=c]ISR(TIMER2_COMP_vect) {<br />if (Timer1) --Timer1;<br />if (Timer2) --Timer2;<br />/*...itd...*/<br />}[/syntax]<br /><br />Kod działa poprawnie. Myślałem, że pozbycie się dodatkowej zmiennej uint16_t x; zmniejszy kod wynikowy (i bardziej zoptymalizuje działanie Timerów programowych). Jednak okazało się, że przy tym rozwiązaniu program zajmuje więcej pamięci FLASH. Stąd moje pytania:<br />Dlaczego tak się dzieje (że zajmuje więcej FLASH-a)?<br />Czy moje rozwiązanie wykonuje się wolniej niż &quot;Mirkowe&quot; z BlueBooka?<br /><br />Dodatkowo przy tej okazji chciałem spytać: Czy można przyjąć taką (prostą) zależność, że im program zajmuje mniej FLASH-a, tym jest bardziej zoptymalizowany (i szybciej się wykonuje)?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=968">gordon10</a> — 12 kwi 2015, o 12:23</p><hr />
]]></content>
</entry>
</feed>