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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-10T11:08:21+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5928&amp;mode</id>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2014-02-10T11:08:21+01:00</updated>
<published>2014-02-10T11:08:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69636#p69636</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69636#p69636"/>
<title type="html"><![CDATA[Re: Dziwna, a nawet bardzo dziwna kompilacja kodu...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69636#p69636"><![CDATA[
@xor -&gt; No cholera tak czułem, że coś z tymi zmiennymi będzie nie tak, ale do głowy mi nie przyszło, że to mają być <strong>static</strong>, a już na pewno, że kompilator to wytnie z tego powodu  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  - za mało doświadczenia jeszcze z C mam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Dzięki wielkie! Wędruje oczywiście &quot;klik&quot; <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=1922">SylwekK</a> — 10 lut 2014, o 11:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-02-10T11:01:04+01:00</updated>
<published>2014-02-10T11:01:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69633#p69633</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69633#p69633"/>
<title type="html"><![CDATA[Re: Dziwna, a nawet bardzo dziwna kompilacja kodu...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69633#p69633"><![CDATA[
Kompilator dokonal optymalizacji i wyciął wszystko to co jest niepotrzebne, czyli to co się nigdy nie wykona. W tej chwili, z calej procedury wykona sie zawsze tylko linia 20 i 25. Dlaczego? Bo przy kazdym wywolaniu procedury zmienne stan_imp i opu będą tworzone na nowo i inicjalizowane zerem. Nigdy nie beda mialy szansy otrzymac innej wartosci. Jesli chcesz zeby zmienne przechowywaly wartosc miedzy wywolywaniami to musisz je zdefiniowac jako statyczne albo jako globalne<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 10 lut 2014, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2014-02-10T11:00:48+01:00</updated>
<published>2014-02-10T11:00:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69632#p69632</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69632#p69632"/>
<title type="html"><![CDATA[Re: Dziwna, a nawet bardzo dziwna kompilacja kodu...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69632#p69632"><![CDATA[
No bez przesady, zdziwił byś się ile miałem kodu w przerwaniach w takim samym czasie zegarowym w Bascom'ie i wszystko hulało, a tu ledwo parę linijek...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 10 lut 2014, o 11:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2014-02-10T10:55:23+01:00</updated>
<published>2014-02-10T10:55:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69631#p69631</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69631#p69631"/>
<title type="html"><![CDATA[Re: Dziwna, a nawet bardzo dziwna kompilacja kodu...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69631#p69631"><![CDATA[
Bo za duzo robisz w przerwaniu i Ci zoptymalizowal <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=926">charsz</a> — 10 lut 2014, o 10:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2014-02-10T10:35:57+01:00</updated>
<published>2014-02-10T10:35:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69626#p69626</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69626#p69626"/>
<title type="html"><![CDATA[Dziwna, a nawet bardzo dziwna kompilacja kodu...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5928&amp;p=69626#p69626"><![CDATA[
Postanowiłem sobie zrobić jakieś tam migadełko w przerwaniach (wywoływanie co 100us - wiem dość gęsto, ale dla timera będzie mi to potrzebne) i gdy próbuję go skompilować to mam wrażenie, że Eclipse się na mnie obraził. Sprawa wygląda tak:<br /><br />[syntax=c]ISR(TIMER1_COMPA_vect){<br /><br />//if (t1)--t1;<br /><br />uint8_t stan_imp=0, czas_imp=0;<br />uint16_t opu=0;<br /><br />if (stan_imp){<br />if (czas_imp&lt;100){ // 100x100us=10ms<br />++czas_imp;<br />led_on;<br />}<br />else{<br />czas_imp=0;<br />stan_imp=0;<br />opu=30000; //czas_przerwy;<br />}<br />}<br />else{<br />led_off;<br />if(opu){<br />--opu;<br />}<br />else{<br />stan_imp=1;<br />}<br />}<br /><br /><br /><br />}//END ISR[/syntax]<br /><br />w pliku .lss mam natomiast coś takiego po kompilacji:<br /><br />[syntax=asm]000000cc &lt;__vector_11&gt;:<br />  cc:1f 92       pushr1<br />  ce:0f 92       pushr0<br />  d0:0f b6       inr0, 0x3f; 63<br />  d2:0f 92       pushr0<br />  d4:11 24       eorr1, r1<br />  d6:28 98       cbi0x05, 0; 5<br />  d8:0f 90       popr0<br />  da:0f be       out0x3f, r0; 63<br />  dc:0f 90       popr0<br />  de:1f 90       popr1<br />  e0:18 95       reti[/syntax]<br /><br />Śmiech na sali... zmarnowałem już kilka godzin na szukanie przyczyny, kombinowałem z innymi algorytmami (switch-case) i nic.<br /><br />Przy kompilacji żadnych warningów, wszystko niby prawidłowo i pewnie szukał bym gdzieś głębiej przyczyny gdyby nie to, że gdy korzystam z samego timera czyli:<br /><br />[syntax=c]ISR(TIMER1_COMPA_vect){<br /><br />if (t1)--t1;<br /><br /><br />}//END ISR[/syntax]<br /><br />to plik .lss zawiera:<br /><br />[syntax=asm]000000cc &lt;__vector_11&gt;:<br />  cc:1f 92       pushr1<br />  ce:0f 92       pushr0<br />  d0:0f b6       inr0, 0x3f; 63<br />  d2:0f 92       pushr0<br />  d4:11 24       eorr1, r1<br />  d6:8f 93       pushr24<br />  d8:9f 93       pushr25<br />  da:80 91 00 01 ldsr24, 0x0100<br />  de:90 91 01 01 ldsr25, 0x0101<br />  e2:89 2b       orr24, r25<br />  e4:49 f0       breq.+18     ; 0xf8 &lt;__vector_11+0x2c&gt;<br />  e6:80 91 00 01 ldsr24, 0x0100<br />  ea:90 91 01 01 ldsr25, 0x0101<br />  ee:01 97       sbiwr24, 0x01; 1<br />  f0:90 93 01 01 sts0x0101, r25<br />  f4:80 93 00 01 sts0x0100, r24<br />  f8:9f 91       popr25<br />  fa:8f 91       popr24<br />  fc:0f 90       popr0<br />  fe:0f be       out0x3f, r0; 63<br /> 100:0f 90       popr0<br /> 102:1f 90       popr1<br /> 104:18 95       reti[/syntax]<br /><br />i timer oczywiście działa prawidłowo w pętli głównej.<br /><br />Czy może ktoś mi sensownie wytłumaczyć dlaczego eclipse obraził się na moje migadełko i za nic w świecie nie chce go <strong>prawidłowo</strong> skompilować? Jeszcze raz mówię - żadnych warningów, ostrzeżeń, błędów - eclipse grzecznie mówi że wszystko ok - i to mnie w nim zaczęło  przerażać. Czuję się jakby kompilator przejął rolę polityka, który to lepiej wie co mi jest potrzebne do szczęścia...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 10 lut 2014, o 10:35</p><hr />
]]></content>
</entry>
</feed>