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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-13T15:52:39+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19766&amp;mode</id>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2017-12-13T15:52:39+01:00</updated>
<published>2017-12-13T15:52:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200444#p200444</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200444#p200444"/>
<title type="html"><![CDATA[Re: wskaźnik na element struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200444#p200444"><![CDATA[
W pliku menu.h zdefiniowałem typ strukturalny<br />Zadeklarowałem zmienne do tego typu <br /><br />[syntax=c]typedef struct {<br />    uint8_t kontrolka;<br />    uint16_t tabela_wartosci&#91;5&#93;&#91;5&#93;;<br />}TCFG;<br /><br />extern const TCFG pgm_cfg PROGMEM;      // Dane w pamięci FLASH                                   |<br />extern TCFG eem_cfg EEMEM;              // dane w pamięci EEPROM                                  |<br />extern TCFG ram_cfg;                    // Dane w RAM[/syntax]<br /><br />W pliku menu.c wygląda to tak:<br /><br />[syntax=c]TCFG const pgm_cfg PROGMEM = {<br />    192,<br />    {{ 30 , 44, 45, 100, 1} ,       // nastawy program 1<br />        { 240 , 55, 56, 50, 1} ,    // nastawy program 1<br />        { 15 , 85, 95, 100, 1} ,   // .....<br />        { 240 , 49, 50, 100, 1} ,<br />        { 360, 19, 20, 50, 128}},<br />};<br />TCFG eem_cfg EEMEM;                              // dane w pamięci EEPROM<br />TCFG ram_cfg;                                    // dane w pamięci Ram[/syntax]<br /><br />To jest tak samo jak opisywał Mirek w poradniku o strukturach <br />Wprowadziłem modyfikacje która umożliwia mi wyłuskiwanie nastaw programu po indeksie.<br />czyli gdzieś w kodzie <br /><br />[syntax=c]lcd_int( ram_cfg.tabela_wartosci &#91;ktory&#93; &#91;1&#93; );      // Druga kolumna w której jest temperatura 1[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 13 gru 2017, o 15:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[panbosman]]></name></author>
<updated>2017-12-08T23:59:28+01:00</updated>
<published>2017-12-08T23:59:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200236#p200236</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200236#p200236"/>
<title type="html"><![CDATA[Re: wskaźnik na element struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200236#p200236"><![CDATA[
<strong>roske</strong> i <strong>robespierre</strong> Dzięki ale pokazaliście jak dostać się do struktury po nazwie pola a mi potrzeba po numerze(indeksie).<br /><br />Dokładnie mam taki przypadek.<br />Dostaje po UART takie dane: - 1 <strong>która pozycja struktury</strong>, 2 <strong>wartość pozycji</strong>.<br />Mogę to sobie przeliczać ALE chciałbym dostać się do struktury jak do tablicy.<br />struktura[która pozycja struktury]=[wartość pozycji]<br />Jak się nie da to nie ALE lubię podrążyć <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=819">panbosman</a> — 8 gru 2017, o 23:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[panbosman]]></name></author>
<updated>2017-12-07T22:45:10+01:00</updated>
<published>2017-12-07T22:45:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200171#p200171</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200171#p200171"/>
<title type="html"><![CDATA[Re: wskaźnik na element struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200171#p200171"><![CDATA[
Dwa pola. uint16_t mm i  uint16_t s1.<br />Tak, przejechać się łatwo, ale może komuś się przydać ten wpis.<br />Będę uważał.<br />Jeszcze raz dzięki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=819">panbosman</a> — 7 gru 2017, o 22:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-12-07T22:32:03+01:00</updated>
<published>2017-12-07T22:32:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200170#p200170</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200170#p200170"/>
<title type="html"><![CDATA[Re: wskaźnik na element struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200170#p200170"><![CDATA[
uwaga - bo się przejedziesz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> w tej strukturze masz jedno pole 2-bajtowe <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> — 7 gru 2017, o 22:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[panbosman]]></name></author>
<updated>2017-12-07T22:19:09+01:00</updated>
<published>2017-12-07T22:19:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200169#p200169</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200169#p200169"/>
<title type="html"><![CDATA[Re: wskaźnik na element struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200169#p200169"><![CDATA[
Sprawdziłem przed chwilą, że można sobie policzyć które pole w strukturze chcemy zmienić czy odczytać.<br />Dla przykładowej struktury:<br />[syntax=c]typedef struct {<br />        uint8_t hh;<br />        uint16_t mm;<br />        uint8_t ss;<br />        uint16_t s1;<br />        uint8_t s2;<br />} TTIME;<br />TTIME time;[/syntax]<br /><br />jeśli zmieniamy zmienną s2 to :<br />[syntax=c]uint8_t * twsk = (uint8_t*)&amp;time;<br />twsk&#91;6&#93; = wartość;[/syntax]<br />bo hh-0, mm-1 i 2, ss-3, s1 4 i 5 a s2=6<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=819">panbosman</a> — 7 gru 2017, o 22:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-12-07T22:00:16+01:00</updated>
<published>2017-12-07T22:00:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200168#p200168</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200168#p200168"/>
<title type="html"><![CDATA[Re: wskaźnik na element struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200168#p200168"><![CDATA[
to masz tam przykład z unią i dostępem poprzez tablicę bajtów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />gdyby coś było niezrozumiałe jeszcze z BB to śmiało pytaj - bardzo chętnie pomogę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 gru 2017, o 22:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[panbosman]]></name></author>
<updated>2017-12-07T21:49:21+01:00</updated>
<published>2017-12-07T21:49:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200167#p200167</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200167#p200167"/>
<title type="html"><![CDATA[Re: wskaźnik na element struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200167#p200167"><![CDATA[
Dzięki. <br />O to mi chodziło. <br />W przykładowej strukturze są same uint8_t więc nie ma problemu.<br />Czytałem ten rozdział z BB o wskaźnikach ze 100 razy. <br />Widocznie umysł już nie ten. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Dzięki jeszcze raz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=819">panbosman</a> — 7 gru 2017, o 21:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-12-07T21:33:34+01:00</updated>
<published>2017-12-07T21:33:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200165#p200165</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200165#p200165"/>
<title type="html"><![CDATA[Re: wskaźnik na element struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200165#p200165"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />ale czy możemy się dostać do pola struktury tak jak np. do tablicy po numerze pola?<br /></div><br />a tu sobie sam coś wymyśliłeś troszkę &quot;z kosmosu&quot; .... bo co to miałoby niby oznaczać &quot;po numerze&quot; pola ?<br /><br />Nie ma czegoś takiego - żeby wskaźniki działały wg dowolnego pomysłu użytkownika <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... trzeba się nauczyć wskaźników i zobaczyć jakie one dają możliwości<br /><br />możesz zatem dostać się np do DOWOLNEGO bajtu (uważaj, BAJTU) takiej struktury np w ten sposób:<br /><br />uint8_t * ptr = (uint8_t*)&amp;time;<br /><br />i wtedy proszę<br /><br />uint8_t a = ptr[0];<br /><br />ale miej na uwadze, że odczytujesz JEDEN BAJT a nie jeden element struktury. Struktura to nie TABLICA gdzie KAŻDY element musi być takiego samego typu - więc jak możesz próbować oczekiwać, że KAŻDY element struktury będzie takiego samego typu ? <br /><br />Jeśli wiesz że twoja struktura zawiera SAME ELEMENTY jedno -bajtowe - to nawet w Bluebooku masz przykład jak do tego podejść<br /><br />zastosować połączenie UNII ze strukturą - ale tu już proszę zajrzyj do Bluebooka i najwyżej powiedz czego nie rozumiesz - żebym nie musiał od nowa tutaj pisać tego co już jest w książce ok ?<br /><br />Zajrzyj też na bloga<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/07/struktury-w-c-wyjasnijmy-sobie-dokadnie.html" >http://mirekk36.blogspot.com/2013/07/st ... adnie.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 gru 2017, o 21:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[panbosman]]></name></author>
<updated>2017-12-07T21:27:21+01:00</updated>
<published>2017-12-07T21:27:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200164#p200164</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200164#p200164"/>
<title type="html"><![CDATA[wskaźnik na element struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19766&amp;p=200164#p200164"><![CDATA[
Witam.<br />Definiujemy nowy typ struktury <br />[syntax=c]typedef struct {<br />uint8_t hh;<br />uint8_t mm;<br />uint8_t ss;<br />} TTIME;<br /><br />TTIME time;[/syntax]<br />tworzymy do niej wskaźnik<br />[syntax=c]TTIME * twsk = &amp;time;[/syntax]<br />możemy się dostać do pól struktury przez nazwę<br />[syntax=c]twsk-&gt;mm= 16;[/syntax]<br />ale czy możemy się dostać do pola struktury tak jak np.  do tablicy po numerze pola?<br />[syntax=c]twsk-&gt;&#91;0&#93;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=819">panbosman</a> — 7 gru 2017, o 21:27</p><hr />
]]></content>
</entry>
</feed>