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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-06-06T19:30:41+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1151&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-06-06T19:30:41+01:00</updated>
<published>2012-06-06T19:30:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7597#p7597</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7597#p7597"/>
<title type="html"><![CDATA[Re: Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7597#p7597"><![CDATA[
Dobrze myślisz - bo te zmienne lokalne jak je nazwałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> to w asemblerze nazywają się rejestry - a operacje na nich wykonywane są zdecydowanie szybsze niż operacje na pamięci.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 cze 2012, o 19:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-06T18:18:12+01:00</updated>
<published>2012-06-06T18:18:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7594#p7594</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7594#p7594"/>
<title type="html"><![CDATA[Re: Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7594#p7594"><![CDATA[
Kurcze do czego to doszło żebym musiał się kłócić o niebieską książkę ze swoim 3 letnim synem <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /> .<br /><br /><br />A wracając do tematu, wydedukowało mi się żę kompilator w przypadku drugim ( tym większym objętościowo ) przy warunku if pobiera wartość Timer1 sprwdza czy nie 0, jeżeli nie 0 to wtedy pobiera ją jeszcze raz.<br /><br />Natomiast w przypadku pierwszym ( tym mniejszym) wartość Timera1 jest pobierana do zmiennej lokalnej, następnie jest sprawdzana i &quot;obrabiana&quot; a na ońcu przepisywana do Timer1.<br /><br />Co nasuwa wniosek że mimo większej ilości kodu do napisania w przypadku pierwszym po skompilowaniu wynikowo dla procesora jest to mniej operacji do wykonania.<br /><br />Dobrze myślę czy znow poszedłem gdzieś na maliny, a raczej w maliny ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 6 cze 2012, o 18:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-06-06T13:35:37+01:00</updated>
<published>2012-06-06T13:35:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7574#p7574</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7574#p7574"/>
<title type="html"><![CDATA[Re: Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7574#p7574"><![CDATA[
Ja teraz nie mam jak sprawdzić i potwierdzić, który mniej który więcej i dokładnie skąd to wynika - ale może wieczorkiem znajdę chwilkę to przeanalizuję, przypomnę sobie co i jak i podpowiem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 cze 2012, o 13:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-06T13:15:13+01:00</updated>
<published>2012-06-06T13:15:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7572#p7572</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7572#p7572"/>
<title type="html"><![CDATA[Re: Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7572#p7572"><![CDATA[
Nie no ...... dobrze patrzyłem pierwszy kod zajmuje mniej miejsca niż drugi<br /><br />Na te różnice to tak nie patrz, bo one mogą się zmieniać w zależności od procka i nawet całego programu, tu optymalizator robi różne sztuczki. Więc to może być raz 20 bajtów a innym 5 albo 10 itp<br /><br />To rozumiem ...... , tylko nadal się zastanawiam skąd wynika ta różnica że mimo powołania dodatkowych zmiennych kod nadal zajmuje mniej ......., według logiki powinien zajmować więcej ........ Hmmm ...<br /><br /><strong><em>-- dodano 6 cze 2012, o 14:21 --</em></strong><br /><br />Timer1;<br /><br />A tak na marginesie takie &quot;puste&quot; wywołanie zmiennej kosztuje 8 bajtów przy czym zmienna jest 16-to bitowa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 6 cze 2012, o 13:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-06-06T13:08:05+01:00</updated>
<published>2012-06-06T13:08:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7571#p7571</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7571#p7571"/>
<title type="html"><![CDATA[Re: Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7571#p7571"><![CDATA[
<div class="quotetitle">Malutki_27 napisał(a):</div><div class="quotecontent"><br />Ehhh a różnica to 20 a nie 40 bajtów<br /></div><br /><br />Na te różnice to tak nie patrz, bo one mogą się zmieniać w zależności od procka i nawet całego programu, tu optymalizator robi różne sztuczki. Więc to może być raz 20 bajtów a innym 5 albo 10 itp<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 cze 2012, o 13:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-06T13:06:10+01:00</updated>
<published>2012-06-06T13:06:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7570#p7570</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7570#p7570"/>
<title type="html"><![CDATA[Re: Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7570#p7570"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />A co to w ogóle jest to:<br /><br />Timer1;<br /></div><br />Własnie przed chwilą zuważyłem to i już poprawiłem.<br /><br /><br />Co do tej objętości to aż jeszcze raz zaraz sprawdze<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 6 cze 2012, o 13:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-06-06T13:02:42+01:00</updated>
<published>2012-06-06T13:02:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7569#p7569</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7569#p7569"/>
<title type="html"><![CDATA[Re: Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7569#p7569"><![CDATA[
A co to w ogóle jest to:<br /><br />Timer1;<br /><br />w tym drugim przykładzie ??? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Poza tym twoje pytanie powinno brzmieć troszkę inaczej, dlaczego użyty jest taki kod, który zajmuje więcej pamięci Flash, skoro można go napisać prościej i zajmuje mniej miejsca ???<br /><br />Wtedy odpowiedziałbym ci, że &quot;nie wszystko złoto co się świeci&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> a dokładniej mówiąc nie każdy kod w C napisany krócej wykonuje się szybciej. A zwróć uwagę, że to jest obsługa timerów programowych - i trzeba się starać żeby była wykonywana w przerwaniu JAK NAJSZYBCIEJ. I to co widzisz to jest właśnie taka optymalizacja pod kątem szybkości kosztem nieco większego kodu w pamięci FLASH.<br /><br />W nowej książce będziesz miał BARDZO dobitny przykład takiej optymalizacji kodu procedury obsługi przerwania, które wysyła próbki po I2S do przetwornika DAC TDA1543 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ....<br /><br />wiem - pozostaje pytanie &quot;dlaczego?&quot; - no dlatego że jak sam widzisz powołujesz do życia zmienne lokalne a przecież to MUSI wydłużyć nieco kod, za to zysk jest taki, że jakbyś znał asembler i podejrzał co stało się po kompilacji i przeanalizował to okazałoby się, że jest mniej odwołań do pamięci a więcej działań na rejestrach - co znacznie przyśpiesza wykonanie procedury obsługi całego przerwania.<br /><br />I takich optymalizacji będzie trzeba się powoli uczyć <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> — 6 cze 2012, o 13:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-06T13:02:27+01:00</updated>
<published>2012-06-06T13:02:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7568#p7568</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7568#p7568"/>
<title type="html"><![CDATA[Re: Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7568#p7568"><![CDATA[
<div class="quotetitle">KoreX napisał(a):</div><div class="quotecontent"><br />Na moje oko powodem jest to że powołujesz do życia 2 nowe zmienne 16bitowe...<br />Ale to tylko gdybanie, poczekaj na odpowiedź kogoś mądrzejszego w programowaniu:)<br /></div><br /><br /><br />No własnie gdybanie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> , ponieważ pierwszy fragment mniej zajmuje. <br /><br />Pierwszy ma - 944<br />a drugi -964<br /><br />Ehhh a różnica to 20 a nie 40 bajtów<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 6 cze 2012, o 13:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoreX]]></name></author>
<updated>2012-06-06T12:47:17+01:00</updated>
<published>2012-06-06T12:47:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7567#p7567</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7567#p7567"/>
<title type="html"><![CDATA[Re: Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7567#p7567"><![CDATA[
Na moje oko powodem jest to że powołujesz do życia 2 nowe zmienne 16bitowe...<br />Ale to tylko gdybanie, poczekaj na odpowiedź kogoś mądrzejszego w programowaniu:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=229">KoreX</a> — 6 cze 2012, o 12:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-06T13:03:39+01:00</updated>
<published>2012-06-06T12:34:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7566#p7566</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7566#p7566"/>
<title type="html"><![CDATA[Zmienne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1151&amp;p=7566#p7566"><![CDATA[
No dobra my tu gadu gadu o drugiej księdze prawdy a tu trzeba pogłębiać wiedzę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><br />Niech no mi ktoś wytłumaczy czemu jest różnica w ilosci zajętych bajtów miedzy tymi dwoma zapisami<br /><br />[syntax=c]ISR(TIMER0_COMP_vect){<br />uint16_t p,g;<br />p = Timer1;<br />if (p) Timer1= --p;<br />g = Timer2;<br />if (!p &amp;&amp; g) Timer2 = --g;<br />p=Timer3;<br />if (p) Timer3=--p;<br />}[/syntax]<br /><br />[syntax=c]ISR(TIMER0_COMP_vect){<br />if (Timer1) Timer1--;<br />if (!Timer1 &amp;&amp; Timer2) Timer2--;<br />if (Timer3) Timer3--;<br />}[/syntax]<br /><br />A różnica jest nie bagatelna, bo aż 20 bajtów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 6 cze 2012, o 12:34</p><hr />
]]></content>
</entry>
</feed>