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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-06-26T20:45:52+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=23&amp;t=2226&amp;mode</id>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-06-26T20:45:52+01:00</updated>
<published>2015-06-26T20:45:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=133005#p133005</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=133005#p133005"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=133005#p133005"><![CDATA[
No wyżej masz przykład. To jest od nawigacji menu - if (menu_flag != pozycja) { i po tym warunku jest nawigacja w menu}. A funkcje, czy też instrukcje w pętli głównej wywołane z menu poprzedź warunkiem if (menu_flag == pozycja).<br /><br />Żeby lepiej zobrazować fragment funkcji wywołanej z menu (wsio w jednej funkcji wywoływanej naciśnięciem klawisza)<br /><br />[syntax=c]void f_menu(void) {<br /><br />if (pozycja == menu_flag) {<br />static menu *flag_cls = 0;<br /><br />if (command == kl_enter &amp;&amp; key_time == 0 &amp;&amp; !Timer1) { //ENTER-wyjście z funkcji wywoł. z menu<br />Timer1 = 3;<br />menu_flag = 0;                          //kasowanie flag<br />flag_cls = 0;<br />lcd_cls();<br />            poz_x=1;<br /><br />}<br /><br />if (command == prawo &amp;&amp; !key_time) { // szybkie przechodzenie do nast. nastawy<br />next();<br />enter();<br />}<br /><br />if (command == lewo &amp;&amp; !key_time) {<br />prev();<br />enter();<br />}<br /><br />if (flag_cls != menu_flag)<br />lcd_cls();<br />//------------------------------------Dzień--------------<br />if (menu_flag == &amp;submenu11) {<br />flag_cls = &amp;submenu11;<br />lcd_locate(0, 0);<br />lcd_str_P(PSTR(&quot;DD&quot;));<br /><br />if (command == gora &amp;&amp; !(key_time % 2)) {<br />if (++datetime.day &gt; 31)<br />datetime.day = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (command == dol &amp;&amp; !(key_time % 2)) {<br />if (--datetime.day &lt; 1)<br />datetime.day = 31;<br />zegarek_zapis(&amp;datetime);<br />}<br />lcd_locate(1, 0);<br />data_show(&amp;datetime);<br />}<br />//------------------------------------Miesiąc-----------------<br />if (menu_flag == &amp;submenu12) {<br />flag_cls = &amp;submenu12;<br />lcd_locate(0, 3);<br />lcd_str_P(PSTR(&quot;MM&quot;));<br />lcd_locate(1, 0);<br /><br />if (command == gora &amp;&amp; !(key_time % 2)) {<br />if (++datetime.month &gt; 12)<br />datetime.month = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (command == dol &amp;&amp; !(key_time % 2)) {<br />if (--datetime.month &lt; 1)<br />datetime.month = 12;<br />zegarek_zapis(&amp;datetime);<br />}<br />data_show(&amp;datetime);<br />}<br /><br />//----------Rok---------------<br />if (menu_flag == &amp;submenu13) {<br />flag_cls = &amp;submenu13;<br />lcd_locate(0, 8);<br />lcd_str(&quot;RR&quot;);<br />lcd_locate(1, 0);<br /><br />if (command == gora &amp;&amp; !(key_time % 2)) {<br />if (++datetime.year &gt; 99)<br />datetime.year = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (command == dol &amp;&amp; !(key_time % 2)) {<br />if (--datetime.year == 255)<br />datetime.year = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />data_show(&amp;datetime);<br />}<br />//-------------Dzień tygodnia---------------[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 26 cze 2015, o 20:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[usiex]]></name></author>
<updated>2015-06-26T20:32:11+01:00</updated>
<published>2015-06-26T20:32:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=133003#p133003</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=133003#p133003"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=133003#p133003"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Menu jest tak skonstruowane, że jak się wejdzie w funkcję wywołaną z menu to przyciski nawigacji już nie działają i można je użyć do własnych celów. Tylko może ja coś tam zmieniłem.<br /></div><br />Chyba jednak musiałeś coś zmienić bo przyciski nawigacyjne działają nadal,czy może użyłeś jakiejś dodatkowej flagi aby je zablokować.Będe wdzięczny za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4295">usiex</a> — 26 cze 2015, o 20:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-06-26T13:42:32+01:00</updated>
<published>2015-06-26T13:42:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132968#p132968</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132968#p132968"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132968#p132968"><![CDATA[
Menu jest tak skonstruowane, że jak się wejdzie w funkcję wywołaną z menu to przyciski nawigacji już nie działają i można je użyć do własnych celów. Tylko może ja coś tam zmieniłem.<br /> Moja funkcja do nawigacji pilotem wygląda tak:<br /><br />[syntax=c]void menu_navi(void) {<br />if (menu_flag != pozycja) { // * &quot;chodzenie&quot; po menu<br /><br />if (pozycja != &amp;stop) {<br />if (command == dol &amp;&amp; key_time == 0)  //next<br />next();<br /><br />if (command == gora &amp;&amp; key_time == 0)  //prev<br />prev();<br />      }<br />if (command == lewo &amp;&amp; key_time == 0) //back<br />back();<br /><br />if (command == kl_enter &amp;&amp; key_time == 0 ) {  //enter<br /><br />enter();<br />lcd_cls();<br />Timer1 = 3;<br /><br />}<br /><br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 26 cze 2015, o 13:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-06-25T21:24:50+01:00</updated>
<published>2015-06-25T21:24:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132899#p132899</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132899#p132899"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132899#p132899"><![CDATA[
<div class="quotetitle">usiex napisał(a):</div><div class="quotecontent"><br />Witam<br />Do obsługi przycisków  używam mirkowego superdebounce<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">SuperDebounce(&amp;up, &amp;PIND, K_up, 10, 100, next, 0);<br />SuperDebounce(&amp;down, &amp;PIND, K_down, 10, 100, prev,0);<br /></div><br /><br />Moge przechodzić sobie po menu  i chciałbym aby te przyciski w podmenu<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">if(menu_flag==&amp;submenu11){ }<br /></div><br />zmieniły swoje działanie ze zmiany poziomu menu na zmiane wartości parametru np.temperatury a w submenu 21 te same przyciski zmienią wartość parametru histerezy.<br /><br />Może teraz rozjaśniłem o co mi chodzi<br /></div><br /><br />Dokadnie to samo miałem na myśli <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=1628">majster</a> — 25 cze 2015, o 21:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[usiex]]></name></author>
<updated>2015-06-25T21:16:22+01:00</updated>
<published>2015-06-25T21:16:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132897#p132897</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132897#p132897"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132897#p132897"><![CDATA[
Witam<br />Do obsługi przycisków  używam mirkowego superdebounce<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">SuperDebounce(&amp;up, &amp;PIND, K_up, 10, 100, next, 0);<br />SuperDebounce(&amp;down, &amp;PIND, K_down, 10, 100, prev,0);<br /></div><br /><br />Moge przechodzić sobie po menu  i chciałbym aby te przyciski w podmenu<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">if(menu_flag==&amp;submenu11){ }<br /></div><br />zmieniły swoje działanie ze zmiany poziomu menu na zmiane wartości parametru np.temperatury a w submenu 21 te same przyciski zmienią wartość parametru histerezy.<br /><br />Może teraz rozjaśniłem o co mi chodzi<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4295">usiex</a> — 25 cze 2015, o 21:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-06-25T20:52:25+01:00</updated>
<published>2015-06-25T20:52:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132892#p132892</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132892#p132892"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132892#p132892"><![CDATA[
To nie jest problem a podejście do tematu.<br /><br />Ja bym sprawdził w jakim menu / submenu jesteś<br /><br />jeżeli w tym odpowiedzialnym za ustawienie histerezy to wtedy:<br /><br />[syntax=c]if(sumenu == 12){<br /><br />//klawisz góra ++ zmienna<br />//klawisz dół -- zmienna <br /><br />}[/syntax]<br /><br />inaczej tego nie zrobisz chyba że któryś z kolegów ma inny pomysł.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 25 cze 2015, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[usiex]]></name></author>
<updated>2015-06-25T20:41:43+01:00</updated>
<published>2015-06-25T20:41:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132890#p132890</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132890#p132890"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=132890#p132890"><![CDATA[
Witam<br />W jaki sposób w tym menu można dokonać ustawień parametru np temperatury i histerezy(np w submenu 11 i submenu 12). Chciałbym za pomocą dwóch tych samych przycisków co do zmiany pozycji menu dokonac zmiany wartości parametrów i wyswietlać ją na bieżąco w menu ustawień.Może ktoś z kolegów przerabial problem i wskaże algorytm postępowania.<br />Dziękuje i pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4295">usiex</a> — 25 cze 2015, o 20:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-05-17T07:15:46+01:00</updated>
<published>2015-05-17T07:15:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=129346#p129346</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=129346#p129346"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=129346#p129346"><![CDATA[
Znalazłem na Dropbox. Dziękuję <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=9310">avrfun</a> — 17 maja 2015, o 07:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-05-16T11:01:51+01:00</updated>
<published>2015-05-16T11:01:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=129283#p129283</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=129283#p129283"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=129283#p129283"><![CDATA[
Witam i dziękuję za menu.<br />Gdzie można znaleźć bibliotekę do obsługi enkodera (klaw.c, klaw.h)<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 16 maja 2015, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-05-16T09:00:53+01:00</updated>
<published>2015-05-16T09:00:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=129274#p129274</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=129274#p129274"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=129274#p129274"><![CDATA[
W ramach uwag do programu. <br />Przy pierwszym wejściu w menu po resecie procka ekran główny się czyści ładnie i wskakują pozycje menu. Natomiast przy kolejnych wejściach menu nakłada się na ekran główny. W logice nic nie zmieniałem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 16 maja 2015, o 09:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamil12239]]></name></author>
<updated>2015-03-11T09:12:18+01:00</updated>
<published>2015-03-11T09:12:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=123038#p123038</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=123038#p123038"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=123038#p123038"><![CDATA[
Pomogło program się skompilował. Dziękuje panu bardzo za pomoc. Żeby jeszcze ruszył na zestawie <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br /><br />Ruszył w zestawie wszystko ładnie pięknie wyświetla. Mam jeszcze jedno pytanie dotyczące poruszania się po tym menu. Wszystko zawarte jest w pliku klaw_enco.c i .h . Jak zmodyfikować program żeby można było się poruszać za pomocą zwykłych przycisków?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8178">kamil12239</a> — 11 mar 2015, o 09:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamil12239]]></name></author>
<updated>2015-03-11T08:01:41+01:00</updated>
<published>2015-03-11T08:01:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=123033#p123033</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=123033#p123033"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=123033#p123033"><![CDATA[
<span style="color: #FF0000">Źle wstawiony listing - Różowo - Zielony J.</span><br /><br />Taki jest właśnie kod lcd.h nie bardzo wiem gdzie i w jaki sposób zadefiniować czy zadeklarować te funkcje LCD_X, LCD_Y. Mógłby kolega być jeszcze tak wyrozumiały i mi w tym pomóc? Wybaczcie moją niewiedzę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8178">kamil12239</a> — 11 mar 2015, o 08:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2015-03-05T15:40:10+01:00</updated>
<published>2015-03-05T15:40:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=122082#p122082</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=122082#p122082"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=122082#p122082"><![CDATA[
<div class="quotetitle">kamil12239 napisał(a):</div><div class="quotecontent"><br />ale mam inne błędy z którymi też nie moge sobie poradzić.<br /></div>A co masz w pliku menu.h?<br />Bo błędy wykazują, że brak definicji LCD_X, LCD_H.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 5 mar 2015, o 15:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamil12239]]></name></author>
<updated>2015-03-05T15:14:28+01:00</updated>
<published>2015-03-05T15:14:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=122078#p122078</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=122078#p122078"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=122078#p122078"><![CDATA[
Pomogło ale mam inne błędy z którymi też nie moge sobie poradzić.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/8178/9deffd6634403bff8a9c01c409f90935.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/8178/9deffd6634403bff8a9c01c409f90935.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8178">kamil12239</a> — 5 mar 2015, o 15:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2015-03-03T08:07:16+01:00</updated>
<published>2015-03-03T08:07:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=121720#p121720</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=121720#p121720"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=121720#p121720"><![CDATA[
@kamil12239, błędnie linkujesz ścieżki do bibliotek, prawidłowo będzie:<br />[syntax=c]#include &quot;../lcd/lcd44780.h&quot;<br />#include &quot;../klaw_enco/klaw.h&quot;[/syntax]<br />Trzeba użyć cofnięcia o jeden katalog wstecz w ścieżce (../) ponieważ <strong>menu.c</strong> znajduje się w katalogu <strong>menu</strong> w twoim projekcie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 3 mar 2015, o 08:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamil12239]]></name></author>
<updated>2015-03-03T07:49:33+01:00</updated>
<published>2015-03-03T07:49:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=121718#p121718</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=121718#p121718"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=121718#p121718"><![CDATA[
Witam. Mam na imię Kamil jestem początkujący jeśli chodzi i programowanie mikrokontrolerów AVR. Zainteresowałem się menu pana lukasz89 i chciałbym sprawdzić jak działa na swoim zestawie.<br /><br />Mam problem z plikiem menu.c w folderze menu. Dlaczego wywala mi takie błędy? Pliki lcd44780.h i klaw.h istnieją więc w czym problem?<br /><br />Jeśli temat był już poruszany to wybaczcie dopiero się uczę i nie znam jeszcze wszystkich pojęć związanych z językiem C. Proszę o radę.<br /><br />Poniżej zamieszczam zdjęcie ze screenem.<br /><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/8178/aea5c4b33e30d09e119340b7dd09604b.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/8178/aea5c4b33e30d09e119340b7dd09604b.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8178">kamil12239</a> — 3 mar 2015, o 07:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-01-11T19:00:02+01:00</updated>
<published>2015-01-11T19:00:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=113768#p113768</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=113768#p113768"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=113768#p113768"><![CDATA[
Witam. Próbowałem samodzielnie te &quot;consty&quot; powstawiać, żeby do atmelowskiego toolchaina dostosować ale wymiękłem.<br />Może ktoś wkleić jak to ma być ?<br /><br />  EDIT: No i zrobione. W Keplerze jakieś dziwne błędy pokazywało, a na Lunie ładnie się skompilowało.<br /><br />  EDIT:  Jednak nie to było powodem moich utrapień. W bibliotece do obsługi pilota miałem<br />            [syntax=c]#define menu 36 <br />#define enter 59[/syntax]<br />            i to się pożarło ze zmiennymi w pliku menu.h   <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 11 sty 2015, o 19:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-29T15:34:35+01:00</updated>
<published>2013-10-29T15:34:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=54718#p54718</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=54718#p54718"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=54718#p54718"><![CDATA[
a dokładniej tutaj:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/08/eclipse-kopot-z-pstr-przeczytaj.html" >http://mirekk36.blogspot.com/2012/08/ec ... zytaj.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 paź 2013, o 15:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2013-10-29T14:09:53+01:00</updated>
<published>2013-10-29T14:09:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=54708#p54708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=54708#p54708"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=54708#p54708"><![CDATA[
A u mnie wywala taki błąd:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">14:01:39 **** Build of configuration Release for project menu_przyklad ****<br />make all <br />Building file: ../menu/menu.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=16000000UL -MMD -MP -MF&quot;menu/menu.d&quot; -MT&quot;menu/menu.d&quot; -c -o &quot;menu/menu.o&quot; &quot;../menu/menu.c&quot;<br />../menu/menu.c:13:7: error: variable 'tmenu1' must be const in order to be put into read-only section by means of '__attribute__((progmem))'<br />../menu/menu.c:14:7: error: variable 'tmenu2' must be const in order to be put into read-only section by means of '__attribute__((progmem))'<br />../menu/menu.c:15:7: error: variable 'tmenu3' must be const in order to be put into read-only section by means of '__attribute__((progmem))'<br />../menu/menu.c:16:7: error: variable 'tsub11' must be const in order to be put into read-only section by means of '__attribute__((progmem))'<br />../menu/menu.c:17:7: error: variable 'tsub12' must be const in order to be put into read-only section by means of '__attribute__((progmem))'<br />../menu/menu.c:18:7: error: variable 'tmenu21' must be const in order to be put into read-only section by means of '__attribute__((progmem))'<br />make: *** &#91;menu/menu.o&#93; Błąd 1</div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 29 paź 2013, o 14:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-10-12T12:48:06+01:00</updated>
<published>2013-10-12T12:48:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=52663#p52663</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=52663#p52663"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=52663#p52663"><![CDATA[
Trzeba podciągnąć linie sygnałowe ja to robiłem programowo:<br />[syntax=c]void encode_init( void )<br />{DDRA |=0x00;<br />PORTA |= 0x03;<br />......[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 12 paź 2013, o 12:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[aro333]]></name></author>
<updated>2013-10-06T22:24:52+01:00</updated>
<published>2013-10-06T22:24:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=52161#p52161</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=52161#p52161"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=52161#p52161"><![CDATA[
Witam<br />Nazywam sie Arek i jestem mocno mocno początkujacy.<br />Mam pytanko  do tego Menu raczej od strony technicznej. Jak rozumiem sa 4 przyciski podłaczone pod PD0...PD3 wymuszające zero po naciśnięciu, oraz enkoder podlaczony do .... no właśnie do PA0-PA1 a wspolnym końcem do masy układu? Dochodzą jeszcze jakieś kondensatorki i rezystorki podciągające  enkoder?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1851">aro333</a> — 6 paź 2013, o 22:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-08-16T11:12:03+01:00</updated>
<published>2013-08-16T11:12:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=45878#p45878</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=45878#p45878"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=45878#p45878"><![CDATA[
Ponieważ w kodzie znalazło się parę warningów na które wcześniej nie miałem czasu, a które wyszukuje kolega qutrit wstawiam bardziej aktualny kod, z naniesionymi poprawkami:<br />menu.c:[syntax=c]/*<br /> * menu.c<br /> *<br /> *  Created on: 2012-07-24<br /> *      Author: Łukasz<br /> */<br /><br />#include &quot;menu.h&quot;<br />#include &quot;../lcd/lcd44780.h&quot;  //lib Mirka do LCD<br />#include &quot;../klaw_enco/klaw.h&quot;<br /><br />// napisy na LCD elemntów menu<br />tmenu tmenu1&#91;&#93; = &quot;menu1&quot;;<br />tmenu tmenu2&#91;&#93; = &quot;menu2&quot;;<br />tmenu tmenu3&#91;&#93; = &quot;menu3&quot;;<br />tmenu tsub11&#91;&#93; = &quot;podmenu1&quot;;<br />tmenu tsub12&#91;&#93; = &quot;podmenu2&quot;;<br />tmenu tmenu21&#91;&#93; =&quot;pojedyncze sub&quot;;<br /><br /><br />//deficja elemntów menu<br />menu stop;<br /><br />menu menu1;<br />menu submenu11;<br />menu submenu12;<br /><br />menu menu2;<br />menu submenu2;<br />menu menu3;<br />menu stop = {0,&amp;menu1,&amp;menu1,&amp;stop};<br /><br />menu menu1 = {tmenu1, &amp;submenu11, &amp;menu2, &amp;stop};<br />menu submenu11 = {tsub11, &amp;submenu11, &amp;submenu12, &amp;menu1};<br />menu submenu12= {tsub12, &amp;submenu12 ,&amp;submenu11, &amp;menu1};<br /><br />menu menu2={tmenu2, &amp;submenu2, &amp;menu3, &amp;stop};<br />menu submenu2={tmenu21, &amp;submenu2, &amp;submenu2, &amp;menu2};<br /><br />menu menu3 = {tmenu3, &amp;menu3, &amp;menu1, &amp;stop};<br /><br /><br />uint8_t tab1&#91;&#93;={ 0x08, 0x0C, 0x0E, 0x0F, 0x0E, 0x0C, 0x08, 0x00,};<br /><br />menu *menu_flag=0;<br />menu *pozycja = &amp;stop;<br /><br />static void (*ekran_glowny)();<br />void register_ekran_glowny (void (*callback)()){<br />ekran_glowny=callback;<br />}<br /><br /><br />void next(void)<br />{pozycja = pozycja-&gt;next;<br />}<br /><br />void prev(void)<br />{<br />menu*i;<br />i=(pozycja-&gt;parent)-&gt;sub;<br />if(pozycja != &amp;stop){<br />while(i-&gt;next != pozycja)i=i-&gt;next;}<br />pozycja=i;<br /><br />}<br /><br />void enter(void)<br />{<br />if(pozycja==pozycja-&gt;sub) menu_flag=pozycja;<br />else pozycja = pozycja-&gt;sub;<br />}<br /><br />void back(void)<br />{pozycja=pozycja-&gt;parent;<br />}<br /><br />void lcd_clear(void)<br />{uint8_t i,j;<br />for(j=0;j&lt;=LCD_Y;j++){<br />for(i=0;i&lt;=LCD_X;i++){<br />lcd_locate(j,i);lcd_str(&quot; &quot;);<br />}<br />}}<br /><br /><br /><br />void menu_lcd(void)<br />{ static uint16_t z=0;<br />if(pozycja!=&amp;stop &amp;&amp; menu_flag!=pozycja)<br />{ //wyświetlaj gdy jest w menu i nie w funkcji wyołwanej przez menu<br />lcd_defchar( 0x80, tab1);<br />static uint16_t a=0;<br />menu *i, *j; //lokalne pozycje<br />int8_t b=0,c=1;<br />if(a!=(uint16_t)pozycja)lcd_clear();<br />i=(pozycja-&gt;parent)-&gt;sub;<br />j=(pozycja-&gt;parent)-&gt;sub;<br /><br />while(i!=pozycja) // wyznaczanie liczby pozycji mna obecnym poziomie menu<br />{i=i-&gt;next;<br />c++;<br />}<br />i=(pozycja-&gt;parent)-&gt;sub;<br />if((c-LCD_Y)&gt;0){ //wyświetlanie menu gdy pozycji jest więcej niż wierszy LCD<br />for(b=-(c-LCD_Y);b&lt;=(LCD_Y-1);b++){<br />lcd_locate(b,1);if(b&gt;=0)lcd_str_P(i-&gt;name);<br />if(i==pozycja){lcd_locate(b,0);<br />lcd_str(&quot;\x80&quot;); }<br />i=i-&gt;next;<br />}<br />}<br />else{ // wyświetlanie gdy pozycji menu jest mniej lub tyle samo co wierszy LCD<br />for(b=0;b&lt;=(LCD_Y-1);b++){<br />lcd_locate(b,1);lcd_str_P(i-&gt;name);<br />if(i==pozycja){lcd_locate(b,0);<br />lcd_str(&quot;\x80&quot;);}<br />if(i-&gt;next==j)break;<br />i=i-&gt;next;<br />}<br />}<br /><br />//b=0;c=1;<br /><br />a=(uint16_t)pozycja;z=0;<br />}<br />else if(pozycja==&amp;stop) {//wyświetlanie ekranu głównego - to co jest natywnie na lcd gdy nie jesturuchomione menu<br />if(z==0)lcd_clear();<br />if (ekran_glowny)ekran_glowny();<br />z++;<br />}<br />//koniec funkcji menu_lcd<br />}[/syntax]<br />menu.h:<br />[syntax=c]* menu.h<br /> *<br /> *  Created on: 2012-07-24<br /> *      Author: Łukasz<br /> */<br /><br />#ifndef MENU_H_<br />#define MENU_H_<br />#include &lt;avr/pgmspace.h&gt;<br /><br />typedef char PROGMEM tmenu;<br />typedef struct menu menu;<br />struct menu<br />{// struktura reazlaiujaca menu<br />tmenu *name;//napis wyświetlany na lcd<br /> menu *sub;//wskaźnik do submenu<br /> menu *next;//wskaźnik do następnego manu na tym samym poziomie<br /> menu *parent;//wskaźnik do manu nadrzędnego<br />};<br />//deklaracja elemntów menu<br />extern menu stop;<br /><br />extern menu menu1;<br />extern menu submenu11;<br />extern menu submenu12;<br /><br />extern menu menu2;<br />extern menu submenu2;<br />extern menu menu3;<br /><br />extern menu *menu_flag;<br />extern menu *pozycja;<br /><br />void next(void);  //funkcje do pouszania się po menu<br />void prev(void);<br />void enter(void);<br />void back(void);<br /><br />void lcd_clear(void); //czyszczeni całego ekranu<br />void menu_lcd(void);  // wyswietlanie menu<br /><br /><br />void register_ekran_glowny (void (*callback)()); //rejestracja ekranu głównego<br /><br /><br /><br />#endif /* MENU_H_ */[/syntax]<br /><br />main.c:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2013-01-27<br /> *      Author: Łukasz<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;klaw_enco/klaw.h&quot;<br />#include &quot;menu/menu.h&quot;<br />#include &quot;lcd/lcd44780.h&quot;<br /><br />int8_t enco=0;<br /><br />void display_menu_off(void);<br />int main(void)<br />{//rejestracja ekranu głównego<br />register_ekran_glowny(display_menu_off);<br /><br />lcd_init(); //*<br /><br />DDRD |= 0x00;<br />PORTD |= 0x0F;<br />start_klaw();<br />encode_init();<br />pozycja = &amp;stop; //* pozycja początkowa<br />menu_flag=0;//*<br />lcd_cls();<br />sei();<br />while(1)<br />{<br /><br />if(menu_flag!=pozycja){ // * &quot;chodzenie&quot; po menu<br />enco += encode_read4();<br />if(enco&gt;0)//next<br />{uint8_t i=0;<br />for(i=1;i&lt;=enco;i++)next();<br />enco=0;<br />}<br /><br />if(enco&lt;0)//prev<br />{uint8_t i=0;<br />for(i=1;i&lt;=-enco;i++)prev();<br />enco=0;}<br /><br />if(stan_klawiszy &amp; 0b00000010)//enter<br />{enter();<br />stan_klawiszy= 0;<br />}<br /><br />if(stan_klawiszy &amp; 0b00001000)//back<br />{back();<br />stan_klawiszy= 0;<br />}<br />}<br />//przykaładowe wywołanie funkcji przez menu<br />if(menu_flag==&amp;submenu2){menu_flag=0;/*wywołanie funkcji */}  //*<br />if(menu_flag==&amp;submenu11)menu_flag=0;//*<br />if(menu_flag==&amp;submenu12)menu_flag=0;//*<br />if(menu_flag==&amp;menu3)menu_flag=0;//*<br />menu_lcd(); //wyświetlanie menu<br />}//koniec while //*<br />}<br />void display_menu_off(){<br />lcd_locate(0,0); lcd_str(&quot;ekran glowny&quot;);<br />lcd_locate(1,0); lcd_str(&quot; ###MENU OFF### &quot;);}[/syntax]<br />Plik na Dropbox podmieniony:<br /><!-- m --><a class="postlink" href="https://www.dropbox.com/s/vgtp12miga28p42/menu_przyklad.rar" >https://www.dropbox.com/s/vgtp12miga28p ... zyklad.rar</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 16 sie 2013, o 11:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-07-19T21:28:07+01:00</updated>
<published>2013-07-19T21:28:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=42421#p42421</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=42421#p42421"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=42421#p42421"><![CDATA[
[syntax=c]//przykaładowe wywołanie funkcji przez menu<br />if(menu_flag==(uint16_t)&amp;submenu2){menu_flag=0;/*wywołanie funkcji */}  //*[/syntax]<br />teraz zależy co ma robić funkcja, jeśli np. wyświetlać temperaturę to całe ciało funkcji obejmujesz while(!klawisz_back) {ciało funkcji}.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 19 lip 2013, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[BIGjack]]></name></author>
<updated>2013-07-19T15:15:30+01:00</updated>
<published>2013-07-19T15:15:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=42405#p42405</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=42405#p42405"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=42405#p42405"><![CDATA[
Proszę kolegów o pomoc w w/w temacie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1249">BIGjack</a> — 19 lip 2013, o 15:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[BIGjack]]></name></author>
<updated>2013-07-18T21:19:15+01:00</updated>
<published>2013-07-18T21:19:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=42350#p42350</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=42350#p42350"/>
<title type="html"><![CDATA[Re: Menu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2226&amp;p=42350#p42350"><![CDATA[
Czy może ktoś przedstawić jak powinno wyglądać wywołanie funkcji przez menu. <br />Ja próbuję ale nie wiem jak zrobić aby menu w tym momencie się wyłączyło lub nie<br />przykrywało tego co ma wyświetlić funkcja i powrót do menu z funkcji.<br />Chyba trochę namotałem, może ktoś zrozumie intencje <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=1249">BIGjack</a> — 18 lip 2013, o 21:19</p><hr />
]]></content>
</entry>
</feed>