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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-12-22T12:02:38+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=9799&amp;mode</id>
<entry>
<author><name><![CDATA[telkom89]]></name></author>
<updated>2014-12-22T12:02:38+01:00</updated>
<published>2014-12-22T12:02:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9799&amp;p=109950#p109950</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9799&amp;p=109950#p109950"/>
<title type="html"><![CDATA[Problem przy stworzeniu menu na lcd]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9799&amp;p=109950#p109950"><![CDATA[
Witam wszystkich forumowiczów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Jest to mój pierwszy post więc proszę o wyrozumiałość za wszelkie niedociągnięcia. Próbuje stworzyć sterownik, którego jedną z opcji będzie praca jako termostatu. W menu które chce stworzyć będzie można  ustawiać parametry tej pracy- dolny i górny zakres temperatur.<br /><br />Moje menu ma się opierać na strukturze<br /><br />[syntax=c]struct menu<br />{<br />int rx, ry, n, a, prz;//rx ilosc kolumn, ry- ilosc wierszy, n- liczba pozycji, a- pozycja poczatkowa, prz-liczba pol do &quot;przeskoczenia&quot;<br />char opis &#91;8&#93;&#91;10&#93;;<br />    int temp_dolna;<br />int temp_gorna;<br />void (*f&#91;8&#93;)(struct menu*m);<br /> <br />};[/syntax]<br /><br />stworzyłem również funkcje która umożliwia przeskakiwanie po elementach menu<br /><br />[syntax=c]void go(struct menu*m)<br />{<br />int k;<br />if (m-&gt;menu_nastepne!=0) wyswietl(m);<br /><br />while(1)<br />{<br />while((k=czytaj_przycisk())==0);<br />if(k==K_Right)<br />    {<br />++(m-&gt;a); if(m-&gt;a&gt;=m-&gt;n)  m-&gt;a=0;<br />wyswietl(m);<br />    }<br />if(k==K_Left)<br />    {<br />--(m-&gt;a); if(m-&gt;a&lt;0)  m-&gt;a= m-&gt;n-1;<br />wyswietl(m);<br />    }<br />if(k==K_Enter)<br />    {<br /><br /> <br />m-&gt;f&#91;m-&gt;a&#93;(m);<br />_delay_ms(20);<br />while(czytaj_przycisk()); //czekanie na zwolnienie przycisku<br />    wyswietl(m);<br /><br />}<br />if(k==K_Esc)<br />    {<br /><br />//_delay_ms(20);<br />while(czytaj_przycisk()); //czekanie na zwolnienie przycisku<br />  break;<br />   <br />}<br /><br />_delay_ms(20);<br />} <br /><br />}<br /><br />void wyswietl(struct menu*m)<br />{<br />int i;<br />lcd_clear();<br />for (i=0;i&lt;m-&gt;n;i++)<br />    {<br />lcd_gotoxy(i % m-&gt;rx * m-&gt;prz,   i / m-&gt;rx );<br /><br />if(i==m-&gt;a)  //jezeli i=pozycja poczatkowa, wstaw &quot;&gt;&quot;<br />    lcd_swrite(&quot;&gt;&quot;); <br />else  lcd_swrite(&quot; &quot;);  // w przeciwnym przypadku nie wstaw puste pole<br /><br />lcd_swrite(m-&gt;opis&#91;i&#93;); //wstaw opis<br /><br /><br />    }<br />}<br />int czytaj_przycisk()<br />{<br />if(P_LEWO) return K_Left;<br />if(P_PRAWO) return K_Right;<br />if(P_OK) return K_Enter;<br />if(P_WSTECZ) return K_Esc;<br /><br />return 0;<br />}[/syntax]<br /><br />Generalnie to chodzi. Problem pojawia się przy konieczności przejścia do kolejnego menu. Stworzyłem 3 struktury: m1, czujnik A oraz czujnik B. Cały czas kompilator wyrzuca mi błąd przy deklaracji:<br />[syntax=c]m1.f&#91;0&#93;=go(&amp;czujnik_A);[/syntax]<br /><br />błąd: void value not ignored as it ought to be. Domyślam się że chodzi o to, że do funkcji typu void przypisuje funkcje void (która przecież nic nie zwraca). Nie mam zielonego pojęcia jak to obejść. Próbowałem moją funkcje go zamienić z void na int, ale powodowało to zawieszenie się ekranu LCD. Bardzo proszę o pomoc, bo naprawdę nie wiem co z tym faktem zrobić<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6720">telkom89</a> — 22 gru 2014, o 12:02</p><hr />
]]></content>
</entry>
</feed>