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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-08-29T08:42:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4010&amp;mode</id>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-08-29T08:42:57+01:00</updated>
<published>2013-08-29T08:42:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47371#p47371</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47371#p47371"/>
<title type="html"><![CDATA[Re: Różnica w zmiennej 16bit a 32bit :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47371#p47371"><![CDATA[
<div class="quotetitle">xamrex napisał(a):</div><div class="quotecontent"><br />Procesor chyba cały czas wykonuje jakieś operacje, więc dlaczego miałby stać się bardziej ciepły szukając liczb pierwszych niż robiąc w kółko pustą pętlę while<br /></div><br /><br />Nie do końca się z tobą zgodzę, jeżeli procesor nie robi &quot;nic&quot; to w sumie nie przerzuca danych między rejestrami, nie klapie tymi wszystkimi swoimi tranzystorami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br />Dla 8bitowców co prawda to praktycznie żadna różnica, ale łatwo to sprawdzić mierząc prąd pobierany przez procesor w trakcie &quot;liczenia&quot; i porównać do pracy w trybie kręcenia się w pętli głównej.<p>Statystyki: Napisane przez Gość — 29 sie 2013, o 08:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xamrex]]></name></author>
<updated>2013-08-29T08:37:08+01:00</updated>
<published>2013-08-29T08:37:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47370#p47370</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47370#p47370"/>
<title type="html"><![CDATA[Re: Różnica w zmiennej 16bit a 32bit :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47370#p47370"><![CDATA[
Ok, dzięki za odpowiedź <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Myślę, że temat wyczerpany <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=74">xamrex</a> — 29 sie 2013, o 08:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-29T08:28:17+01:00</updated>
<published>2013-08-29T08:28:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47368#p47368</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47368#p47368"/>
<title type="html"><![CDATA[Re: Różnica w zmiennej 16bit a 32bit :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47368#p47368"><![CDATA[
<div class="quotetitle">xamrex napisał(a):</div><div class="quotecontent"><br />Czy jest szansa na użycie uint_24t ?<br /></div><br /><br />Napisać sobie własny kompilator C i stworzyć nowe typy danych  ....<br /><br />sorki, że tak piszę no ale musisz zrozumieć co to są typy danych dla danego kompilatora i o co w tym chodzi ....<br /><br />czyli reasumując musiałbyś stworzyć własny typ np 24 bit, ale nie myśl że tylko stworzyć, jeszcze napisać sobie jego całą obsługę. I gwarantuję ci że działałoby ci to wolniej niż uint_32t <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> albo i wolniej niż uint64_t.<br /><br />Myślę że dużo więcej by ci się rozjaśniło w tym zakresie - tzn dlaczego nie tworzy się typów z kosmosu np 18bitowych albo 27 bitowych - gdybyś chociaż raz sam spróbował zająć się ale w asemblerze napisaniem nawet najprostszych operacji matematycznych jak mnożenie, dzielenie, dodawanie odejmowanie i wziął to pod uwagę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 sie 2013, o 08:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xamrex]]></name></author>
<updated>2013-08-29T07:49:08+01:00</updated>
<published>2013-08-29T07:49:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47365#p47365</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47365#p47365"/>
<title type="html"><![CDATA[Re: Różnica w zmiennej 16bit a 32bit :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47365#p47365"><![CDATA[
<div class="quotetitle">sq8dsr napisał(a):</div><div class="quotecontent"><br />A tak całkowicie na marginesie, czy przy tej operacji liczenia proc robi się ciepły ?<br /></div><br />Nie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />To pewnie tak samo dla niego jak zrobić<br />while(1){<br />;<br />}<br /><br />Procesor chyba cały czas wykonuje jakieś operacje, więc dlaczego miałby stać się bardziej ciepły szukając liczb pierwszych niż robiąc w kółko pustą  pętlę while<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br /><div class="quotetitle">MrMeriones napisał(a):</div><div class="quotecontent"><br />Zmienna 25-bitowa (o ile da się taką zaimplementować) będzie się liczyć tak samo długo jak 32-bitowa do wartości 25 bitów.<br />AVR-y są 8 bitowe, więc optymalnie jest dawać im po 8 i wielokrotność bitów na raz.<br /><br />Mogę się mylić, niech ktoś to zweryfikuje.<br /></div><br /><br />No ok.<br />Ale jeśli można użyć zmiennej 16 czy 32bitowej. TO dlaczego nie mogę sobie jakoś zainplementować zmiennej 24bitowej?<br />Powinna ona być szybsza niż 32bitowa ale wolniejsza niż 16bitowa?<br /><br />Czy jest szansa na użycie uint_24t ?<br />W jaki sposób stworzyć zmienną, która zajmie w pamięci a 24bity?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=74">xamrex</a> — 29 sie 2013, o 07:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2013-08-28T22:57:34+01:00</updated>
<published>2013-08-28T22:57:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47360#p47360</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47360#p47360"/>
<title type="html"><![CDATA[Re: Różnica w zmiennej 16bit a 32bit :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47360#p47360"><![CDATA[
Mogła by np. być zmienna 24 bitowa... Były kiedyś nawet komputery o takiej długości słowa, a nawet jeszcze dziwniejsze. <br />np. 80286 używa liczb 24 bit do adresowania, ale rejestry oczywiście nadal 16.<br />Tylko w sumie do takich obliczeń  to chyba będzie lepiej zastosować procesor 32 bitowy...<br />Zwłaszcza, że szukanie liczb pierwszych, jeśli ma być wydajne, wymaga sporo pamięci. <br /><br />W sumie 38 minut dla 6507 licz pierwszych to bardzo fajny rezultat. <br />A tak całkowicie na marginesie, czy przy tej operacji liczenia proc robi się ciepły ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 28 sie 2013, o 22:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-28T22:34:37+01:00</updated>
<published>2013-08-28T22:34:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47359#p47359</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47359#p47359"/>
<title type="html"><![CDATA[Re: Różnica w zmiennej 16bit a 32bit :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47359#p47359"><![CDATA[
<div class="quotetitle">MrMeriones napisał(a):</div><div class="quotecontent"><br />Mogę się mylić, niech ktoś to zweryfikuje.<br /></div><br /><br />Nie mylisz się....<br /><br />Zmienne mogą być takie jakie są dostępne typy danych w konkretnym języku (i od tego trzeba zacząć) .... a wszystko inne to już co najwyżej programowe twory/potwory <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... potwory dlatego, że nigdy i tak nie przyśpieszy się działań a co najwyżej spowolni.<br /><br />Zresztą w żadnym języku programowania nie zetknąłem się z innym podejściem niż wielokrotność 8 bitów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tak aporp'os typów<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 sie 2013, o 22:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MrMeriones]]></name></author>
<updated>2013-08-28T22:27:32+01:00</updated>
<published>2013-08-28T22:27:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47357#p47357</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47357#p47357"/>
<title type="html"><![CDATA[Re: Różnica w zmiennej 16bit a 32bit :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47357#p47357"><![CDATA[
Zmienna 25-bitowa (o ile da się taką zaimplementować) będzie się liczyć tak samo długo jak 32-bitowa do wartości 25 bitów.<br />AVR-y są 8 bitowe, więc optymalnie jest dawać im po 8 i wielokrotność bitów na raz.<br /><br />Mogę się mylić, niech ktoś to zweryfikuje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1048">MrMeriones</a> — 28 sie 2013, o 22:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xamrex]]></name></author>
<updated>2013-08-28T20:28:45+01:00</updated>
<published>2013-08-28T20:28:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47335#p47335</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47335#p47335"/>
<title type="html"><![CDATA[Różnica w zmiennej 16bit a 32bit :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4010&amp;p=47335#p47335"><![CDATA[
Wiadomo, że AVR nie radzi sobie zbyt dobrze ze zmiennymi innymi niż 8bitowe.<br />Ale.<br />Postanowiłem zrobić mały teścik:D<br />Generalnie program liczy i pokazuje liczby pierwsze.<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &quot;RS/rs232.h&quot;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />uint16_t total=1; // musimy zaczac od 1 gdzy nie zlicza liczby 2<br />volatile uint8_t sek,min,godz;<br /><br /><br />int main(void){<br /><br />uint16_t zmienna=0,total=0;<br />uint16_t i=1;<br />USART_init(76800);<br /><br />TCCR1B|=(1&lt;&lt;WGM12);//CTC<br />TCCR1B|=(1&lt;&lt;CS12)|(1&lt;&lt;CS10);//presc 1024<br />OCR1A=15624;//co 1sek<br />TIMSK |=(1&lt;&lt;OCIE1A);<br /><br />DDRA=0xff;//porta jako wyjscie (użyty do migania dioda)<br />sei();<br /><br /><br />for (zmienna=2;;zmienna++){<br />while((zmienna%i) !=0 ){<br />i++;<br />}<br /><br />if (zmienna==i) {<br />USART_napis(&quot; znalezionych liczb: &quot;);<br />USART_int(total++);<br /><br />USART_napis(&quot;  Zanleziona liczba to: &quot;);<br />USART_int(i);<br /><br />USART_napis(&quot; Czas ktory uplynal to: &quot;);<br /><br />USART_int(godz);<br />USART_Transmit('h');<br />USART_int(min);<br />USART_Transmit('m');<br />USART_int(sek);<br />USART_Transmit('s');<br /><br /><br />USART_Transmit('\r');<br />USART_Transmit('\n');<br /><br /><br />}<br />i=2;// zacznij od nowa<br /><br /><br />}<br /><br /><br />}<br /><br />ISR( TIMER1_COMPA_vect ){<br />sek++;<br />if(sek==60){sek=0;min++;}<br />if(min==60){min=0;godz++;}<br />PORTA^=(1&lt;&lt;PA0); //migaj co sekunde dioda<br />}[/syntax]<br /><br />Oczywiście funkcja <strong>USART_int</strong>Zamiast z itoa, korzysta z ultoa();<br /><br />Procek napędzany kwarcem 16Mhz<br />No i teraz podam wyniki.<br />jeśli te zmienne:<br /><strong>uint16_t zmienna=0,total=0; uint16_t i=1;</strong><br />-są szesnasto bitowe to: <!-- m --><a class="postlink" href="http://nopaste.info/bb507c51b4_nl.html" >http://nopaste.info/bb507c51b4_nl.html</a><!-- m --><br />-są trzydziestodwu bitowe to: <!-- m --><a class="postlink" href="http://nopaste.info/a95ab85572_nl.html" >http://nopaste.info/a95ab85572_nl.html</a><!-- m --><br /><br />Jak widać do znalezienia <strong>6057</strong> liczb pierwszych przy użyciu 16bitowych zmienny potrzeba było tylko <strong>38</strong> minut, a przy użyciu 32bitowych zmiennych aż <strong>107</strong> minut.<br /><br />Teraz się tak zastanawiam.<br />Czy da się do życia w jakiś prosty sposób powołać np. 25bitową zmienną (tak, aby można było więcej liczb znaleźć, ale również nie czekać na to wieki?)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=74">xamrex</a> — 28 sie 2013, o 20:28</p><hr />
]]></content>
</entry>
</feed>