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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-04-04T19:28:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=23&amp;t=20264&amp;mode</id>
<entry>
<author><name><![CDATA[Lagun_25]]></name></author>
<updated>2018-04-04T19:28:22+01:00</updated>
<published>2018-04-04T19:28:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206462#p206462</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206462#p206462"/>
<title type="html"><![CDATA[Re: MENU na LCD: kod + tutorial]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206462#p206462"><![CDATA[
If wykona się wtedy gdy będziesz na poziomie jakiegoś podmenu, a nie w menu głównym. Wtedy currentPointer będzie miał rodzica i warunek będzie spełniony. Np. rodzicem sub_menu1_1 jest menu1, a nie NULL:<br /><br />[syntax=c]// definition of menu's components: (*name, *next, *prev, *child, *parent, (*menu_function))<br />menu_t sub_menu1_1 = { &quot;ELEMENT 1_1&quot;, &amp;sub_menu1_2, &amp;sub_menu1_2, &amp;sub_menu1_1_1, &amp;menu1, NULL };[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4953">Lagun_25</a> — 4 kwi 2018, o 19:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2018-04-04T18:12:36+01:00</updated>
<published>2018-04-04T18:12:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206457#p206457</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206457#p206457"/>
<title type="html"><![CDATA[Re: MENU na LCD: kod + tutorial]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206457#p206457"><![CDATA[
Brałem przyklad z twojego menu,<br />Tabkica  menu1 lub inne gdzie tam parent jest null czyli  zero czyli w ifa nie wejdzie i wykona sie else temp = &amp;menu1, chodzi mi o sytuacje kiedy sie wykona if.<br /><br />Chyba że źle to rozumiem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 4 kwi 2018, o 18:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lagun_25]]></name></author>
<updated>2018-04-04T17:01:35+01:00</updated>
<published>2018-04-04T17:01:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206455#p206455</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206455#p206455"/>
<title type="html"><![CDATA[Re: MENU na LCD: kod + tutorial]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206455#p206455"><![CDATA[
Cześć. Zmienna temp nie może przechowywać adresu kilku elementów menu. Przechowuje adres tylko jednego elementu i w tym wypadku jest to pierwszy element na danym poziomie menu. Nie możemy się do niego odwołać bezpośrednio jak w przypadku &amp;menu1, więc trzeba w ten sposób: ((currentPointer-&gt;parent)-&gt;child). I teraz po kolei:<br />1. currentPointer przechowuje adres do jakiegoś elementu menu. <br />2. Ten element może mieć swoje dzieci, rodziców, itd. Poprzez zapis (currentPointer-&gt;parent) odwołujemy się już do zupełnie innego elementu menu - w tym wypadku rodzica aktualnego elementu.<br />3. Ten element także może mieć swoich rodziców, dzieci, itd. W tym wypadku odwołujemy się do jego dziecka: (currentPointer-&gt;parent)-&gt;child.<br />Jeszcze dla lepszego zobrazowania można to zapisać na dwóch zmiennych:<br />[syntax=c]menu_t *temp1, *temp;<br /><br />temp1 = currentPointer-&gt;parent;<br />temp = temp1-&gt;child;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4953">Lagun_25</a> — 4 kwi 2018, o 17:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2018-04-02T21:52:10+01:00</updated>
<published>2018-04-02T21:52:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206412#p206412</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206412#p206412"/>
<title type="html"><![CDATA[Re: MENU na LCD: kod + tutorial]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=206412#p206412"><![CDATA[
cześć.<br /><br />nie rozumiem tego zapisu<br /><br />if (currentPointer-&gt;parent) temp = (currentPointer-&gt;parent)-&gt;child;<br />else temp = &amp;menu1;<br /><br />czy? (currentPointer-&gt;parent) wskazuje teraz na -&gt; child i temp przyjmuje parametr tylko z child,<br />czy?  (currentPointer-&gt;parent)-&gt;child te dwa parametry sa przyjmowane przez temp,<br />?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 2 kwi 2018, o 21:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lagun_25]]></name></author>
<updated>2018-02-20T19:11:48+01:00</updated>
<published>2018-02-20T19:11:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=204288#p204288</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=204288#p204288"/>
<title type="html"><![CDATA[MENU na LCD: kod + tutorial]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20264&amp;p=204288#p204288"><![CDATA[
<strong>Cześć wszystkim </strong> <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />  <br /><br />Chciałem przedstawić moją implementację <strong>menu na lcd</strong>. Działanie można zobaczyć na filmie:<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br /><strong>Link do plików źródłowych:</strong> <!-- m --><a class="postlink" href="https://github.com/embeddeddevpl/blog_repo/tree/master/MENU-LCD_%232/STM32" >https://github.com/embeddeddevpl/blog_r ... %232/STM32</a><!-- m --><br /><br />Cały projekt napisany jest pod STM32 i wyświetlacz ze sterownikiem <strong>HD44780</strong>, ale implementacja samego menu jest odseparowana od rodzaju mikrokontrolera. W przypadku gdyby chciało się wykorzystać inny wyświetlacz to jednak wprowadzenie drobnych modyfikacji byłoby konieczne. Nie jest to taki kawał dobrej roboty jak<strong> biblioteka i generator Pana Mirka</strong> <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Jak to pisałem to jeszcze takich cudów nie było <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />No ale gdyby ktoś chciał się z tym grzebać to może się przyda - w razie czego, napisałem też <strong>tutorial</strong>, gdzie tłumaczę całą implementację i wykorzystane mechanizmy: <!-- m --><a class="postlink" href="http://www.embeddeddev.pl/menu-na-lcd-wprowadzenie/" >http://www.embeddeddev.pl/menu-na-lcd-wprowadzenie/</a><!-- m --> <br />Wydaje mi się, że są tam opisane całkiem ciekawe zagadnienia, które niektórym mogą pomóc podszlifować programistyczne skillsy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />  Wszelki feedback mile widziany. Pozdrawiam <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=4953">Lagun_25</a> — 20 lut 2018, o 19:11</p><hr />
]]></content>
</entry>
</feed>