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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-07-14T14:25:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=18809&amp;mode</id>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-07-14T14:25:57+01:00</updated>
<published>2017-07-14T14:25:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192115#p192115</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192115#p192115"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192115#p192115"><![CDATA[
Sama nazwa tablicy jest wskaźnikiem, więc może zapis wskaźnika z nawiasami i indeksem może również jest akceptowalny. Ale lepiej jest pisać tak by wszystko wyglądało jednoznacznie i zgodnie ze sztuką niż po pewnym czasie się zastanawiać co autor miał na myśli i dociekać czy taki zapis zadziała czy też nie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 14 lip 2017, o 14:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[procek87]]></name></author>
<updated>2017-07-14T13:22:01+01:00</updated>
<published>2017-07-14T13:22:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192113#p192113</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192113#p192113"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192113#p192113"><![CDATA[
czyli teraz to co pokazują na didoach to młodsza część bajtu w której jest adres  który jest zapisany do wskaźnika ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 minutach ]</span></strong><br /><br />dziękuje xentis już się wyjaśniło dałem Ci pochwałe jak coś to znowu spytam<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 33 minutach ]</span></strong><br /><br />zapisując w ten sposób też działa ale rozumiem że jest to nie poprawny zapis tak jak to xentis pisałeś i go nie stosować ze względu na składnie .<br /><br />[syntax=c]void zer(uint8_t *zm)<br />{<br />        PORTC=  zm&#91;2&#93;;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17263">procek87</a> — 14 lip 2017, o 13:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-07-14T13:24:20+01:00</updated>
<published>2017-07-14T13:14:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192112#p192112</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192112#p192112"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192112#p192112"><![CDATA[
<div class="quotetitle">procek87 napisał(a):</div><div class="quotecontent"><br />wartość wskaźnikowa to adres a więc ostrzega mnie przed liczbą całkowitą adresem który nie zmieści się do bajtowego PORTC , zgadza się?<br /></div>Nie chodzi o to czy się zmieści a o konflikt typów.<br /><br />Chyba mylisz trochę pojęcia, wskaźnik przechowuje 2-baltowy adres komórki pamięci procesora,indeks tablicy to zupełnie coś innego i wartość znajdująca się pod indeksem w tablicy też coś innego.<br /><br /><div class="quotetitle">procek87 napisał(a):</div><div class="quotecontent"><br />[syntax=c]//<br />void zer(uint8_t *zm)<br />{<br />        PORTC=  zm&#91;2&#93;;<br />}[/syntax]<br /></div> wskaźnika nie możesz traktować jak tablicy,tak więc zapis z nawiasami kwadratowymi jest nieprawidłowy.<br />możesz natomiast zrobić dodawanie do adresu czyli jak chcesz się dobrać do trzeciego elementu tablicy robisz tak <br />[syntax=c]//<br />PORTC = (zm+2);[/syntax]<br /><br />lub jak chcesz wyłuskać wartość z pamięci to:<br />[syntax=c]//<br />PORTC =*(zm+2);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 14 lip 2017, o 13:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[procek87]]></name></author>
<updated>2017-07-14T13:07:21+01:00</updated>
<published>2017-07-14T13:07:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192111#p192111</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192111#p192111"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192111#p192111"><![CDATA[
wartość wskaźnikowa to adres a więc ostrzega mnie przed liczbą całkowitą adresem który nie zmieści się do bajtowego PORTC , zgadza się?<br /><br />zrobiłem rzutowanie ale  na porcie na ma tej wartość jaka jest w tablicy pod tym indeksem jest 0 a na diodach pokazuje 32, 64 bit 6 i 7.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17263">procek87</a> — 14 lip 2017, o 13:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-07-14T13:01:40+01:00</updated>
<published>2017-07-14T13:01:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192110#p192110</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192110#p192110"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192110#p192110"><![CDATA[
<div class="quotetitle">procek87 napisał(a):</div><div class="quotecontent"><br />chyba się pomyliłem przypisując adres PORTC= zm; wyskakuje ostrzeżenie o treści:<br /><br />assignment makes integer from pointer without a cast [enabled by default]<br /></div>Kompilator ostrzega że próbujesz wartość wskaźnikową wpisać do rejestru. Musisz zrzutować to na uint16_t wtedy kompilator się uspokoi.<br />[syntax=c]//<br />PORTC= (uint16_t)zm;[/syntax]<br /><br /><div class="quotetitle">procek87 napisał(a):</div><div class="quotecontent"><br />pytanie czy jeśli w argumencie między nawiasami okrągłym jest wskaźnik to czy mogę operować na tablicach wewnątrz funkcji ? bo przecież to co jest między nawiasami kwadratowymi to indeks czyli numer komórki od 0, a nie jej adres .<br /></div>Jeśi tablica jest zmienną globalną to możesz, jeśli nie to nie możesz bo kompilator zna tylko adres przekazany do funkcji, nie zna nazwy tablicy (jeśli użyjesz tej samej nazwy dla wskażnika jak i dla tablicy to nic nie zmieni, może jedynie jedno przysłonić drugie - np gdy tablica będzie globalna a użyjesz wskażnika o tej samej nazwie to wskaźnik zasłoni widoczność tablicy)<br />Możesz przekazać do funkcji samą nazwę tablicy bez nawiasów kwadratowych - taki zapis jest również traktowany jako wskąźnik.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 14 lip 2017, o 13:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[procek87]]></name></author>
<updated>2017-07-14T12:37:30+01:00</updated>
<published>2017-07-14T12:37:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192109#p192109</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192109#p192109"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192109#p192109"><![CDATA[
[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />void zer(uint8_t *zm);<br />uint8_t tab&#91;&#93;={0,2,8,32,128};<br /><br />int main(void)<br />{<br />DDRC=0xff;<br />    //uint8_t i=3;<br /><br />while(1)<br />{<br />        zer(tab);<br />}<br />}<br /><br />void zer(uint8_t *zm)<br />{<br />PORTC=  zm;<br />}[/syntax]<br /><br /> chyba się pomyliłem przypisując adres PORTC= zm; wyskakuje ostrzeżenie o treści:<br /><br /><strong>assignment makes integer from pointer without a cast [enabled by default]</strong><br /><br /><br />natomiast zapisując tak PORTC=*zm; przypisuje wartość adresu i jest okej.<br />________________________________________________________________________<br /><br />inaczej jest natomiast gdy ładuje do PORTC z tablicy <br /><br />[syntax=c]void zer(uint8_t *zm)<br />{<br />PORTC=  zm&#91;2&#93;;<br />}[/syntax]<br /><br />pytanie czy jeśli w argumencie między nawiasami okrągłym jest wskaźnik to czy mogę operować na tablicach wewnątrz funkcji ? bo przecież to co jest między nawiasami kwadratowymi to indeks czyli numer komórki od 0, a nie jej adres .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17263">procek87</a> — 14 lip 2017, o 12:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-07-14T12:24:25+01:00</updated>
<published>2017-07-14T12:24:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192108#p192108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192108#p192108"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192108#p192108"><![CDATA[
<div class="quotetitle">procek87 napisał(a):</div><div class="quotecontent"><br />a co jeśli użyje zapisu wsk do PORTC (adresu) , załaduje najmłodszą część bajtu w której zawiera się adres ?<br /></div><br />dokładnie tak.<br /><br /><div class="quotetitle">procek87 napisał(a):</div><div class="quotecontent"><br />przed chwilą tak zrobiłem i oba przypadki dają ten sam efekt.<br /></div> A masz tą zmienną zainicjalizowaną jakąś wartością?<br />Jaki masz ten efekt?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 14 lip 2017, o 12:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[procek87]]></name></author>
<updated>2017-07-14T12:25:13+01:00</updated>
<published>2017-07-14T12:21:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192106#p192106</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192106#p192106"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192106#p192106"><![CDATA[
<span style="font-size: 120%; line-height: normal">dobrze mówimy o załadowaniu wartośći pod adresem<strong> *wsk do PORTC , a co jeśli użyje zapisu wsk do PORTC (adresu)</strong> , załaduje najmłodszą część bajtu w której zawiera się adres ? przed chwilą tak zrobiłem i oba przypadki dają ten sam efekt.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17263">procek87</a> — 14 lip 2017, o 12:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-07-14T12:04:35+01:00</updated>
<published>2017-07-14T12:04:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192105#p192105</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192105#p192105"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192105#p192105"><![CDATA[
Nie, adresu rejestru nie zmieniasz tylko ładujesz do niego to co znajduje się we wskaźniku, tylko wskaźniki są dwubajtowe, więc w rejestrze PORTC wyląduje tylko najmłodszy bajt adresu.<br />Rejestr ma swój adres niezmienny, a przypisując coś do niego poprostu umieszczasz to coś w nim. A jeśli port c ustawisz jako wyjście (czyli do rejestru DDRC załadujesz same jedynki) to to co załadujesz do PORTC spowoduje że zapisany bit 0 podłączy odpowiednią nogę procka do masy, a zapisany bit 1 spowoduje że odpowiadający mu pin procka zostanie podłączony do Vcc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 14 lip 2017, o 12:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2017-07-14T12:04:15+01:00</updated>
<published>2017-07-14T12:04:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192104#p192104</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192104#p192104"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192104#p192104"><![CDATA[
<div class="quotetitle">procek87 napisał(a):</div><div class="quotecontent"><br />właśnie nie wiem czy adres rejestru PORTC zmienia adres na adres komórki którą zawiera wskaźnik?<br /></div><br /><br />Adres portu to adres portu. Nie można go zmienić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 14 lip 2017, o 12:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[procek87]]></name></author>
<updated>2017-07-14T11:47:43+01:00</updated>
<published>2017-07-14T11:47:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192103#p192103</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192103#p192103"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192103#p192103"><![CDATA[
<div class="quotetitle">xentis napisał(a):</div><div class="quotecontent"><br />W pierwszym zapisie który podałeś po prostu do portu wyjścia zostanie załadowana część adresu czegoś na co wskazuje wskażnik.<br /></div><br /><br />właśnie nie wiem czy adres rejestru PORTC zmienia adres na adres komórki którą zawiera wskaźnik?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17263">procek87</a> — 14 lip 2017, o 11:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-07-14T11:43:50+01:00</updated>
<published>2017-07-14T11:43:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192102#p192102</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192102#p192102"/>
<title type="html"><![CDATA[Re: Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192102#p192102"><![CDATA[
Adresu portu nie zmienisz w ten sposób. Nazwa PORTC jest tak naprawdę makrem wskazującym rejestr wyjściowy tego portu,  które jest zdefiniowane w pliku ioXXX.h gdzie XXX jest skrótową nazwą procka czyli np dla atmega32A będzie to plik iom32a.h<br />W pierwszym zapisie który podałeś po prostu do portu wyjścia zostanie załadowana część adresu czegoś na co wskazuje wskażnik.<br />Natomiast drugi zapis spowoduje że do portu wyjścia zostanie przepisana wartość na którą wskazuje wskaźnik.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 14 lip 2017, o 11:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[procek87]]></name></author>
<updated>2017-07-14T11:44:42+01:00</updated>
<published>2017-07-14T11:28:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192101#p192101</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192101#p192101"/>
<title type="html"><![CDATA[Pytanie początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18809&amp;p=192101#p192101"><![CDATA[
[syntax=c]void zer(uint8_t *zm)<br />{<br /><br />      PORTC = zm ; //adres wskaźnika zamiast adresu portu c w rejestrze?<br /><br />}[/syntax]<br /><br />czy  można zmienić adres  PORTC  stosując taki zapis jak wyżej? a może lepiej tego nie praktykować .<br /><br />Zamiast tego przypisać wartość komórki pod tym adresm do PORTC  , oba przykłady dają ten sam skutek<br /><br />[syntax=c]void zer(uint8_t *zm)<br />{<br /><br />      PORTC = *zm ; //wartość komórki pod  adresem ,na którą patrzy wskaźnik.<br /><br />}[/syntax]<br /><br />nie bardzo rozumiem czy PORTC mam traktować jak każdą inną zmienną która ma swój adres w pamięci ale no właśnie przecież to rejestr?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17263">procek87</a> — 14 lip 2017, o 11:28</p><hr />
]]></content>
</entry>
</feed>