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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-10-16T18:07:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=27&amp;t=1660&amp;mode</id>
<entry>
<author><name><![CDATA[Wrangler]]></name></author>
<updated>2012-10-16T18:07:12+01:00</updated>
<published>2012-10-16T18:07:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16913#p16913</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16913#p16913"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16913#p16913"><![CDATA[
<div class="quotetitle">GwynBleidD napisał(a):</div><div class="quotecontent"><br />4. Ilość bitów typu wskaźnika wskazuje na to o ile się on będzie przesuwał przy działaniu na nim arytmetycznie. Wskaźnik 16 bitowy przesunie się o 2 bajty, wskaźnik 8mio bitowy o 1 bajt.<br /></div><br />Dla mnie to własnie było niezrozumiałe od samego początku. <br />Bardzo dobre wytłumaczenie z przykładami 8,16,32,64-bitowymi, że tu chodzi tylko o przesuwanie wskaźnika o konkretną ilość.  <br /><br />Fajne kompendium się zrobiło. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Oczywiście dzięki. <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=223">Wrangler</a> — 16 paź 2012, o 18:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-16T13:56:20+01:00</updated>
<published>2012-10-16T13:56:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16909#p16909</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16909#p16909"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16909#p16909"><![CDATA[
<div class="quotetitle">GwynBleidD napisał(a):</div><div class="quotecontent"><br />3. Ilość bitów wskaźnika NIE JEST jego rozmiarem zajmowanym w pamięci.<br /></div><br /><br />No tu troszkę ci nie wyszło. Gdybyś napisał tak <br /><br />3. Ilość bitów TYPU zmiennej wskaźnikowej NIE JEST jego rozmiarem zajmowanym w pamięci.<br /><br />to byłoby lepiej..... Ponieważ ilość bitów wskaźnika (wskaźnik jest 16-bitowy) zawsze spowoduje, że w RAM zostaną zajęte na zmienną wskaźnikową 2 bajty.<br /><br />Pozostałe punkty ok.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 paź 2012, o 13:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-16T12:40:48+01:00</updated>
<published>2012-10-16T12:40:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16907#p16907</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16907#p16907"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16907#p16907"><![CDATA[
<div class="quotetitle">kidcowboy napisał(a):</div><div class="quotecontent"><br />to by wskazał całą liczbę 520 (0x0208)<br /></div><br /><br />DOKŁADNIUŚKO TAK <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> o to chodzi - bardzo dobrze to wytłumaczyłeś teraz i widać że dobrze rozumiesz...<br /><br />teraz tylko w praktyce jak najszybciej to trzeba ćwiczyć<br /><br /><br />ja na tym etapie wyjaśnię oczywiście jeszcze jeden podstęp którego użyłem, otóż specjalnie nie zastosowałem jawnego rzutowania, a tymczasem kompilator na taki kod burzyłby się i sypnął warnigami. Ale też to byłaby za duża podpowiedź.<br /><br />otóż trzeba byłoby to zrobić tak np:<br /><br />[syntax=c]uint8_t tab[] = { x,x,x,x,x,x,x };<br /><br />uint16_t *wsk = (uint16_t *)tab;[/syntax]<br /><br />a w przypadku pierwszym:<br /><br />[syntax=c]uint16_t tab[] = { x,y };<br /><br />uint8_t *wsk = (uint8_t *)tab;[/syntax]<br /><br />widzicie teraz jawne rzutowania - teraz kompilator nie będzie krzyczał ponieważ wyraźnie mu mówimy - eeeej ty, panie końpilator potraktuj mnie tą tablicę jako zbiór elementów x-bajtowych <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> — 16 paź 2012, o 12:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kidcowboy]]></name></author>
<updated>2012-10-16T12:28:51+01:00</updated>
<published>2012-10-16T12:28:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16906#p16906</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16906#p16906"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16906#p16906"><![CDATA[
hehehe . Czyli powracając do pierwszego przykładu - zagadki. Wskaźnik i tak zajmuje dwie komórki pamięci ale zapis:<br />[syntax=c]<br />uint8_t*wsk=tab;<br />[/syntax]<br />powoduje - wyłuskanie wartości spod pierwszej (młodszej części bajtu) bo tyle jest w stanie przechować. jakby było <br />[syntax=c]<br />uint16_t*wsk=tab;<br />uint16_t a;<br />wsk++;<br />a=*wsk;<br />[/syntax]<br />to by wskazał całą liczbę 520 (0x0208)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=313">kidcowboy</a> — 16 paź 2012, o 12:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elkuba]]></name></author>
<updated>2012-10-16T12:26:27+01:00</updated>
<published>2012-10-16T12:26:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16905#p16905</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16905#p16905"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16905#p16905"><![CDATA[
W przypadku typów 8-bitowych nie ma sensu mówić o Little albo Big Endian.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=400">elkuba</a> — 16 paź 2012, o 12:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-16T12:10:11+01:00</updated>
<published>2012-10-16T12:10:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16904#p16904</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16904#p16904"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16904#p16904"><![CDATA[
<div class="quotetitle">kidcowboy napisał(a):</div><div class="quotecontent"><br />Czyli w Big Endian byłoby 0 ?<br /></div><br /><br />jak?<br /><br />24,0,0,0<br /><br />więc skoro najstarszy bajt w BIG ENDIAN jest = 0 a mamy tu reprezentację 32-bitową to wartość byłaby: 402.653.184 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Kiedy się stosuje BIG ENDIAN .... hmmm w AVR GCC nigdy - ale jeśli np będziesz miał analizować jakieś zapisy w pliku, gdzie np ktoś inny albo inny kompilator zapisał coś w BIG ENDIAN - to co ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> to wtedy warto wiedzieć o co chodzi... W takim przypadku będziesz musiał umieć sobie zamienić np BIG na LITTLE albo odwrotnie jeśli będziesz chciał z poziomu AVR zapisać taki plik WAV na kartę. A robię to np przecież w tym plaeyrku - recorderku, który z mikrofonu od razu nagrywa dźwięki wprost i pięknie do plików WAV <br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/avr-wav-player-recorder.html" >http://atnel.pl/avr-wav-player-recorder.html</a><!-- m --><br /><br /><a href="http://atnel.pl/avr-wav-player-recorder.html"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/54_6895e60e29eb4c56c19dae2d052227ac.png" alt="Obrazek" /></a><br /><br /><br />proszę bardzo np w drugiej książce opisuję strukturę nagłówka pliku dźwiękowego WAV, którego odczytujemy z karty pamięci SD. A tam mamy zapisy pewnych wartości zarówno w LITTLE ENDIAN oraz BIG ENDIAN. Więc przydaje się ta wiedza - prawda ..... (a to tylko taki drobny ale za to namacalny i rzeczywisty przykład)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 paź 2012, o 12:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kidcowboy]]></name></author>
<updated>2012-10-16T12:09:36+01:00</updated>
<published>2012-10-16T12:09:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16903#p16903</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16903#p16903"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16903#p16903"><![CDATA[
A kiedy stosuje się BIG ENDIAN ?? A tak poza tym to dobra wskaźnikówka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=313">kidcowboy</a> — 16 paź 2012, o 12:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nixie]]></name></author>
<updated>2012-10-16T12:10:55+01:00</updated>
<published>2012-10-16T12:08:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16902#p16902</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16902#p16902"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16902#p16902"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />ale ok - nixie widać że ty się orientujesz - pozwól więc teraz że np kolega Antystatyczny albo Wrangler - spróbują to jakoś swoimi słowami wyjaśnić - nawet jeśli będą jakieś błędy to będziemy to korygować ok?<br /></div><br /><br />Ok, ale przyznam szczerze, że czasami czuję się zakręcony jak słoik z tymi wskaźnikami. Jako ciekawostka etymologia zwrotów Little i Big Endian z wiki. <br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Angielskie nazwy big endian i little endian pochodzą z książki Jonathana Swifta Podróże Guliwera i odnoszą się do mieszkańców Liliputu, których spór o to, czy ugotowane jajko należy tłuc od grubego (tępego), czy od cienkiego (ostrego) końca, doprowadził do podziału na dwa stronnictwa toczące ze sobą niekończące się, choć bezsensowne dysputy i wojny.<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=358">nixie</a> — 16 paź 2012, o 12:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kidcowboy]]></name></author>
<updated>2012-10-16T12:06:17+01:00</updated>
<published>2012-10-16T12:06:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16901#p16901</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16901#p16901"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16901#p16901"><![CDATA[
i teraz kolejny mały już tylko obrazowy przykładzik, gdyby była tablica:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint8_t tab&#91;&#93; = { 8,2,129,0,24,0,0,0 };</div><br /><br />a powołalibyśmy wskaźnik tym razem 32 bitowy<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint32_t *wsk;<br /><br />wsk++;<br /><br />a = *wsk;</div><br /><br />to już chyba się domyślasz, że wartość w a byłaby równa 24 (w LITTLE ENDIAN) ?<br /><br />zobacz jeszcze raz - dzięki 32-bitowemu typowi wskaźnika - nagle tablica byłaby widoczna z jego punktu widzenia tak<br /><br />{<div class="codetitle"><b>Code:</b></div><div class="codecontent"> 8,2,129,0,  24,0,0,0 };</div><br /><br />natomiast <br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">wsk++;</div><br /><br /><br />Czyli w Big Endian byłoby 0 ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=313">kidcowboy</a> — 16 paź 2012, o 12:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-16T11:57:46+01:00</updated>
<published>2012-10-16T11:57:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16899#p16899</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16899#p16899"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16899#p16899"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Wskaźnik jest 16 bitowy, bo i tak zawsze jest 16 bitowy w przypadku pamieci o rozmiarze  do 64kB. .<br /></div><br /><br />i to właśnie powoduje największe nieporozumienia. Pewnie że wskaźnik jest 16-bitowy - ale ....<br /><br />ale TYP wskaźnika nie ma nic wspólnego z tym że jest on 16-bitowy.<br /><br />TYP WSKAŹNIKA mówi nam o tym - na ilo-bajtowy element on wskazuje<br /><br />i dokładnie tak będzie działała arytmetyka wskaźnika<br /><br />czyli dla<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">char * wsk;<br /><br />wsk++;</div><br /><br />spowoduje wskazanie na kolejny adres w pamięci RAM. Na kolejną komórkę (bo pamięć RAM ma tu organizację 8-bitową)<br /><br />ale dla<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint16_t *wsk;<br /><br />wsk++;</div><br /><br />spowoduje wskazanie o dwa bajty dalej w stosunku do pierwszego adresu elementu tablicy.<br /><br />za to:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint32_t *wsk;<br /><br />wsk++;</div><br /><br />zwiększy adres w RAM aż o 4 bajty do przodu. Czyli jak widzisz jeśli chodzi o arytmetykę wskaźników to niezawsze<br /><br /><strong><span style="color: #0040FF">1+1 = 2</span></strong> z punktu widzenia fizycznych adresów w pamięci RAM - to będzie prawda tylko dla tych przypadków gdy typ wskaźnika będzie 1-bajtowy, np: char, uint8_t, int8_t<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br /><div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Czyli zmienna wskaźnikowa nie zawsze jest 16bitowa? Jeśli nie, to jak np. w 8 bitowej przechować 16bitowy adres zmiennej? (Chyba czegoś tu nie zauważam i stąd błędy w moim toku myślenia)<br /></div><br /><br />spójrz co napisałem do ciebie wyżej.<br /><br /><span style="color: #FF0000">ZMIENNA wskaźnikowa ZAWSZE jest 16-bitowa. Ale to odnosi się do adresu w pamieci RAM. A trzeba przecież jeszcze określić jakoś na jaki element wskazuje tenże 16-bitowy wskaźnik i dlatego ustalamy typ wskaźnika</span>. Jak widzisz z powyższego może on wskazywać na elementy 8-bitowe ale i na większe czyli 16-bitowe, 32-bitowe a nawet 64-bitowe <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />i wtedy inaczej działa arytmetyka wskaźnika<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 paź 2012, o 11:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-10-16T11:53:16+01:00</updated>
<published>2012-10-16T11:53:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16897#p16897</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16897#p16897"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16897#p16897"><![CDATA[
Dobrze kombinujesz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />|_8_bit_|_8_bit_|_8_bit_|_8_bit_|     &lt;- tablica <br />|____16_bit___.|_____16 bit___.|     &lt;- wskaźnik<br /><br />Dodatkowo spojrzyj na opis zapisu umieszczony przez Mirka i powinno byc już jasne jaka będzie wartość <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><br />hihiiii i Mirek był pierwszy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />I nie wyszedł obrazek który by mógl rozjaśnić <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 16 paź 2012, o 11:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-16T11:52:07+01:00</updated>
<published>2012-10-16T11:52:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16896#p16896</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16896#p16896"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16896#p16896"><![CDATA[
<div class="quotetitle">Malutki_27 napisał(a):</div><div class="quotecontent"><br />Pomyśl .......... klucz do zrozumienia jest ukryty w rozmiarach zmiennych <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />ja bym powiedział że klucz jest ukryty w typach wskaźników. Zrozumienie tego to jak przekroczenie bariery dźwięku (1 macha) <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... <br /><br />ale ok małe wyjaśnienie.<br /><br /><div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Hmm... ale dlaczego wskazuje na tab[2] skoro adres zwiekszyliśmy tylko o 1?<br /></div><br /><br />otóż fizyczna wartość wskaźnika wsk, zwiększa się nie o 1 w tym przypadku a o 2 dlaczego ?<br /><br />ano dlatego że typ wskaźnika jest uint16_t (dwu-elementowy że tak powiem)<br /><br />i do takich celów są m.in potrzebne nam TYPY wskaźników <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />i teraz kolejny mały już tylko obrazowy przykładzik, gdyby była tablica:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint8_t tab&#91;&#93; = { 8,2,129,0,24,0,0,0 };</div><br /><br />a powołalibyśmy wskaźnik tym razem 32 bitowy<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint32_t *wsk;<br /><br />wsk++;<br /><br />a = *wsk;</div><br /><br />to już chyba się domyślasz, że wartość w a byłaby równa 24 (w LITTLE ENDIAN) ?<br /><br />zobacz jeszcze raz - dzięki 32-bitowemu typowi wskaźnika - nagle tablica byłaby widoczna z jego punktu widzenia tak<br /><br />{<div class="codetitle"><b>Code:</b></div><div class="codecontent"> 8,2,129,0,  24,0,0,0 };</div><br /><br />natomiast <br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">wsk++;</div><br /><br />spowodowałoby zwiększenie adresu wskaźnika już nie o 2 ale o 4 ponieważ jego typ jest 4-bajtowy<br /><br />Jak widać dzięki temu i dzięki wskaźnikom można się dobierać do dowolnej części pamięci w prawie nieograniczony sposób<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 paź 2012, o 11:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elkuba]]></name></author>
<updated>2012-10-16T11:45:20+01:00</updated>
<published>2012-10-16T11:45:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16894#p16894</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16894#p16894"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16894#p16894"><![CDATA[
[syntax=c]uint8_t tab[] = { 8,2,129,0 };    //powolujemy do &quot;zycia&quot; tablice 4 elementowa. Zajmuje ona komórki w pamieci o adresach 0,1,2,3<br />uint16_t *wsk = tab;              // powolujemy do zycia wskaznik. Zajmuje on komorki w pamięci o adresie 4 oraz 5. Wskazuje on na komorke w pamieci o adresie 0  (czyli na warość 8 z tablicy)<br />uint16_t a;                       // powolujemy do zycia zmianna &quot;a&quot;. Zajmuje on komorki w pamięci o adresach 6 oraz 7<br />wsk++;                            //inkrementujemy adres wskazywany przez wsk. ponieważ jest on 2 bajtowy to następną wartością jaką wskaże jest komórka w pamięci o adresie 2 (czyli wskazuje na wartość 129 z tablicy)<br />a = *wsk;                         //przypisanie do zmiennej a zawartości komórki pamięci o adresie 2[/syntax]<br /><br /><br />ech... za długo pisałem <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=400">elkuba</a> — 16 paź 2012, o 11:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-10-16T11:38:42+01:00</updated>
<published>2012-10-16T11:38:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16893#p16893</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16893#p16893"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16893#p16893"><![CDATA[
Pomyśl .......... klucz do zrozumienia jest ukryty w rozmiarach zmiennych <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=225">Malutki_27</a> — 16 paź 2012, o 11:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2012-10-16T11:37:27+01:00</updated>
<published>2012-10-16T11:37:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16892#p16892</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16892#p16892"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16892#p16892"><![CDATA[
Kurcze nie zauważyłem że wsk wskazuje na uint8 stąd mój błąd w rozumowaniu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<p>Statystyki: Napisane przez Gość — 16 paź 2012, o 11:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-16T11:15:47+01:00</updated>
<published>2012-10-16T11:15:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16889#p16889</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16889#p16889"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16889#p16889"><![CDATA[
<div class="quotetitle">nixie napisał(a):</div><div class="quotecontent"><br />Uwzględniając zapis Little Endian 129.<br /></div><br /><br />tak , dokładnie tak uwzględniając LITTLE ENDIAN będzie to <strong><span style="color: #0040FF">129</span></strong>, a uzwględniając BIG ENDIAN byłoby 33024 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />ale ok - nixie widać że ty się orientujesz - pozwól więc teraz że np kolega Antystatyczny albo Wrangler - spróbują to jakoś swoimi słowami wyjaśnić - nawet jeśli będą jakieś błędy to będziemy to korygować ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 paź 2012, o 11:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nixie]]></name></author>
<updated>2012-10-16T11:13:01+01:00</updated>
<published>2012-10-16T11:13:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16887#p16887</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16887#p16887"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16887#p16887"><![CDATA[
Uwzględniając zapis Little Endian 129.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=358">nixie</a> — 16 paź 2012, o 11:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-16T11:05:14+01:00</updated>
<published>2012-10-16T11:05:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16885#p16885</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16885#p16885"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16885#p16885"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Nie wiem teraz od czego zalezy ułożenie bajtów w słowie, ale to jest pewnie to tajemnicze jak na razie little i big endian<br /></div><br /><br />Trochę może z tym <strong>ENDIAN </strong>zamieszałem ale przy okazji i tego się dowiesz. Generalnie w AVR GCC obowiązuje LITTLE ENDIAN, czyli jeśli jest np słowo (dwa bajty) to w pamięci przechowywany jest najpierw młodszy bajt a później pod kolejnym adresem starszy bajt, przykład<br /><br />jest sobie liczba 0x2308 (hex żeby łatwiej pokazać o co chodzi)<br /><br />wiemy że 0x23 to starszy bajt natomiast 0x08 to jej młodszy bajt<br /><br />zatem normalnie w AVR GCC w pamięci ułożą się one tak<br /><br />0x08 - pierwszy adres w RAM<br />0x23 - drugi adres w RAM<br /><br />Inaczej jest gdy mówimy o BIG ENDIAN, wtedy w pamięci te same bajty zostaną ułożone tak:<br /><br />0x23 - pierwszy adres w RAM<br />0x08 - drugi adres w RAM<br /><br />mam nadzieję, że teraz jaśniej z tym BIG i LITTLE ENDIAN ?<br /><br />wracając do naszego przykładu, mieliśmy liczbę (dziesiętnie) 520 czyli w HEX = 0x0208 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />zakładając więc że mamy do czynienia z BIG ENDIAN to bajty w pamięci RAM naszej tablicy<br /><br />[syntax=c]uint16_t tab[] = {520,129};  // { 0x0208, 0x0081 }[/syntax]<br /><br />ułożyłyby się w takiej kolejności - spójrz:<br /><br />0x02<br />0x08<br />0x00<br />0x81<br /><br />dlatego pisałem że w naszej zmiennej a pojawi się liczba = 8<br /><br />Na wszelki wypadek podaję prawidłowe ułożenie bajtów LITTLE ENDIAN jakie miałoby miejsce naprawdę w AVR GCC<br /><br />0x08<br />0x02<br />0x81<br />0x00<br /><br />a więc w tym przypadku zmienna a byłaby = 2<br /><br />------------------------------------------------------------<br /><br />pozostaje teraz kwestia dlaczego tak się dzieje - i o co tu dokładnie chodzi, ale w tym celu kolejna zagadka:<br /><br />mamy teraz tablicę:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint8_t tab&#91;&#93; = { 8,2,129,0 };</div><br /><br />Następnie powołujemy do życia wskaźnik i zmienną:<br /><br />[syntax=c]uint16_t *wsk = tab;<br /><br />uint16_t a;<br /><br />wsk++;<br />a = *wsk;[/syntax]<br /><br />ile tym razem będzie wynosiła wartość zmiennej <strong><span style="color: #0040FF">a</span></strong> ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 6 minutach ]</span></strong><br /><br />Mam nadzieję że ta druga zagadka będzie bardzo ciekawa i gdy omówimy dwie - to nagle wszystko stanie się jasne <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> — 16 paź 2012, o 11:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nixie]]></name></author>
<updated>2012-10-16T10:58:24+01:00</updated>
<published>2012-10-16T10:58:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16884#p16884</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16884#p16884"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16884#p16884"><![CDATA[
<div class="codetitle"><b>Code:</b></div><div class="codecontent">uint16_t tab&#91;&#93; = { 520, 129 };<br />uint8_t *wsk = tab;</div><br /><br />Wskaźnik wskazuje na tablicę tab a dokładnie na pierwszy bajt tej tablicy czyli uwzględniając układ bajtów Little endian czyli na młodszy bajt liczby 520 (00001000)<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">wsk++;</div><br /><br />Wskaźnik zostaje zwiększony o pozycję jednego bajta i wskazuje teraz na starszy bajt liczby 520 (00000010) czyli 2<br />No chyba, że kompilator jest mądrzejszy i zrobi to odwrotnie:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=358">nixie</a> — 16 paź 2012, o 10:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-16T10:17:01+01:00</updated>
<published>2012-10-16T10:17:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16881#p16881</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16881#p16881"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16881#p16881"><![CDATA[
<div class="quotetitle">kidcowboy napisał(a):</div><div class="quotecontent"><br />wynikało by z tego co napisał jark że wskażnik najpierw wskazuje na starszy bajt a potem na młodszy - ale wydaje mi się że to chyba nie tak. gdyby było odwrotnie to zgoda<br /></div><br /><br />załóżmy że mamy do czynienia z układem bajtów BIG ENDIAN ok ? (<span style="color: #0040FF">oczywiście w AVR GCC jest LITTLE ENDIAN</span> .... ale przy okazji kilka osób zrozumie te dziwne określenia BIG i LITTLE ENDIAN <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> — 16 paź 2012, o 10:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kidcowboy]]></name></author>
<updated>2012-10-16T09:38:31+01:00</updated>
<published>2012-10-16T09:38:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16880#p16880</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16880#p16880"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16880#p16880"><![CDATA[
wynikało by z tego co napisał jark że wskażnik najpierw wskazuje na starszy bajt a potem na młodszy - ale wydaje mi się że to chyba nie tak. gdyby było odwrotnie to zgoda<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=313">kidcowboy</a> — 16 paź 2012, o 09:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wrangler]]></name></author>
<updated>2012-10-16T09:35:06+01:00</updated>
<published>2012-10-16T09:35:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16879#p16879</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16879#p16879"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16879#p16879"><![CDATA[
Yes <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=223">Wrangler</a> — 16 paź 2012, o 09:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jark]]></name></author>
<updated>2012-10-16T09:29:43+01:00</updated>
<published>2012-10-16T09:29:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16878#p16878</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16878#p16878"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16878#p16878"><![CDATA[
Witam. <br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Jeśli mamy np tablicę:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint16_t tab&#91;&#93; = { 520, 129 };</div><br />oraz wskaźnik:<br /><br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint8_t *wsk = tab;</div><br /><br /><br />i zmienną:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint8_t a;</div><br />to jeśli zrobimy działanie:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">wsk++;<br />a = *wsk;</div><br />to jaka liczba będzie w zmiennej <strong><span style="color: #0040FF">a</span></strong> ?<br /></div><br /><br />Bedzie to młodszy bajt z 2 bajtowej zmiennej 520 ?<br /><br />Pozdrawiam<br />Jarek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=582">jark</a> — 16 paź 2012, o 09:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-16T09:19:21+01:00</updated>
<published>2012-10-16T09:19:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16877#p16877</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16877#p16877"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16877#p16877"><![CDATA[
Nie nie nikt - nie idzie do konta - to jest specjalne bojowe pytanie - i powstało wczoraj w nocy na prośbę kolegi Antystatyczny.<br /><br />Ma ono na celu lepsze przybliżenie wskaźników .... na razie rozwiązania nie podaję - czekamy jeszcze na odpowiedź od Antystatycznego ...<br /><br />a później jak mówiłem jeśli prawidłowej nie będzie i prawidłowego wytłumaczenia - to pojawi się kolejne pytanie zamiast odpowiedzi - pytanie naprowadzające - uprzedzam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> może ich być kilka<br /><br />więc bardzo ew proszę tych, którzy dobrze wiedzą o co tu chodzi aby dali szansę innym a mi także w celu przeprowadzenia tego po mojemu ok ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 paź 2012, o 09:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kidcowboy]]></name></author>
<updated>2012-10-16T09:15:16+01:00</updated>
<published>2012-10-16T09:15:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16876#p16876</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16876#p16876"/>
<title type="html"><![CDATA[Re: Pytanko w/s wskaźników]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1660&amp;p=16876#p16876"><![CDATA[
UAAA widze że idę do konta <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=313">kidcowboy</a> — 16 paź 2012, o 09:15</p><hr />
]]></content>
</entry>
</feed>