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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-17T18:17:50+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=24&amp;t=13831&amp;mode</id>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2015-12-17T18:17:50+01:00</updated>
<published>2015-12-17T18:17:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=148327#p148327</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=148327#p148327"/>
<title type="html"><![CDATA[Re: Menu - LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=148327#p148327"><![CDATA[
Dziękuję Wam za odpowiedzi i cenne pomoce, powoli tworze menu takie jakie chciałem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Też się bardzo cieszę, że za każdym razem kiedy mam z czymś problem na forum są ludzie którzy zawsze pomogą bez żadnych słów krytyki albo tekstów że wujek google Ci pomoże <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 17 gru 2015, o 18:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-12T18:47:49+01:00</updated>
<published>2015-12-12T18:47:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147783#p147783</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147783#p147783"/>
<title type="html"><![CDATA[Re: Menu - LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147783#p147783"><![CDATA[
Oj tam,mi nie zalezy,jak komus sie przyda chetnie oddam;)<br />Nie jest to cudo,duzo wstawek na uart(testowac jakos trzeba) ale dziala dobrze.<br />Milo ze tutaj tak jest, nie przypominajac jak jest na ulubionym forum na e..<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=3859">wchpikus</a> — 12 gru 2015, o 18:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-12-11T22:49:02+01:00</updated>
<published>2015-12-11T22:49:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147708#p147708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147708#p147708"/>
<title type="html"><![CDATA[Re: Menu - LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147708#p147708"><![CDATA[
Witam<br /><div class="quotetitle">wchpikus napisał(a):</div><div class="quotecontent"><br />krytykowac mozecie:)<br /></div><br />...strasznie rozciągnąłeś posta w poziomie  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Co tu krytykować, najważniejsze że nikt nie kisi swojej twórczości tylko chętnie się nią dzieli; dlatego to forum jest tak przyjazne dla środowiska.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 11 gru 2015, o 22:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-11T13:17:40+01:00</updated>
<published>2015-12-11T13:17:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147664#p147664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147664#p147664"/>
<title type="html"><![CDATA[Re: Menu - LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147664#p147664"><![CDATA[
Ja menu robilem na petlach while(set_bit), gdzie set_bit byl ustawiany na 0 przy wychodzeniu z petli.<br /><br />wciskasz klawisz (jesli set_bit == 0), =&gt; petla while1(set_bit)<br />cos robisz...<br />...<br />...<br />wychodzisz - ustawiasz set_bit 0.<br /><br />Jesteś w głównym menu..<br /><br />Moze nie efektowne, dużo trzeba bitów ustawiać dla każdego menu, ale działa.<br /><br />Menu glowne:<br /><br />[syntax=c]void main_menu(int *menu_bit){ //bylo int main...<br /><br />*menu_bit = 1;<br /><br />while(*menu_bit == 1){<br />LED1_off;<br />ir_recive(&amp;commandnew);<br />//uart_puts(&quot;commandnew from ir &quot;); uart_putnr(commandnew);uart_puts(&quot;\r\n&quot;);<br /><br /><br /><br />if (podmenu == 0){<br />GLCD_Graph_flash_cdn(pressupordown,0,40);<br />}<br /><br />//**********************************************************************************************<br /><br />if (commandnew == cursor_up){<br />podmenu++;<br />commandnew=255;<br />GLCD_ClearGraphic();<br />}<br /><br />if (commandnew == cursor_down){<br />--podmenu;<br />commandnew=255;<br />GLCD_ClearGraphic();<br />}<br /><br />if (podmenu &lt;= -1){<br />podmenu = 4;<br />}<br /><br />if (podmenu &gt; 4){<br />podmenu = 0;<br />}<br />//uart_puts(&quot;podmenu= &quot;);uart_putnr(podmenu);uart_puts(&quot;\r\n&quot;);<br />//**********************************************************************************************<br /><br />switch (podmenu){<br /><br />case 1: ustaw_zegar();<br />break;<br />case 2: ustaw_podswietlenie();<br />break;<br />case 3: ustaw_wyswietlanie();<br />break;<br />case 4: ustaw_logerr();<br />break;<br /><br />}<br /><br />if (commandnew == button_exit){<br />*menu_bit=0;<br />//display_mode = 0; //start po 0<br />time = 0;<br />GLCD_ClearGraphic();<br />}<br /><br />}<br />//return *menu_bit;<br />}<br /><br /><br /><br /><br />void ustaw_zegar(){<br />LED1_off;<br />GLCD_Graph_flash_cdn(setupclock,0,40);<br />GLCD_Graph_flash_cdn(clock,160,0);<br /><br />if (commandnew == button_ok &amp;&amp; menu_clock_bit == 0 ){ //wchodzi do ustawiania jesli klawisz ok i menu_clock_bit =0<br />menu_clock_bit = 1;<br />GLCD_ClearGraphic();<br />ustawienie_zegara(&amp;menu_clock_bit); //wywolanie ustawiania<br />commandnew=255;<br />}<br />}<br /><br />void ustaw_podswietlenie(){<br />LED1_off;<br />GLCD_Graph_flash_cdn(setupbrightness,0,40);<br />GLCD_Graph_flash_cdn(brightness,160,0);<br /><br />if (commandnew == button_ok &amp;&amp; menu_brightness_bit == 0 &amp;&amp; menu_brightnessday_bit == 0 &amp;&amp; menu_brightnessnight_bit == 0 ){ //wchodzi do ustawiania jesli klawisz ok i menu_brightness_bit =0<br />menu_brightness_bit = 1;<br />menu_brightnessday_bit = 1;<br />menu_brightnessnight_bit = 0;<br />GLCD_ClearGraphic();<br />podswietlenie(&amp;PWM_Value_day,&amp;PWM_Value_night,&amp;menu_brightness_bit,&amp;menu_brightnessday_bit,&amp;menu_brightnessnight_bit);<br />commandnew=255;<br />}<br />}<br /><br />void ustaw_wyswietlanie(){<br />LED1_off;<br />GLCD_Graph_flash_cdn(setupdisplay,0,40);<br />GLCD_Graph_flash_cdn(displays,160,0);<br /><br />//uart_puts(&quot;menu_display_bit wejscie= &quot;);uart_putnr(menu_display_bit);uart_puts(&quot;\r\n&quot;);<br /><br />if (commandnew == button_ok &amp;&amp; menu_display_bit == 0 ){ //wchodzi do ustawiania jesli klawisz ok i menu_display_bit =0<br />menu_display_bit = 1;<br />GLCD_ClearGraphic();<br />wyswietlanie (&amp;display_mode,&amp;menu_display_bit);<br />commandnew=255;<br />}<br /><br />//uart_puts(&quot;display_mode menu &quot;);uart_putnr(display_mode);uart_puts(&quot;\r\n&quot;);<br />}<br /><br />void ustaw_logerr(){<br />LED1_off;<br />GLCD_Graph_flash_cdn(setuplogger,0,40);<br />GLCD_Graph_flash_cdn(logger,160,0);<br /><br /><br /><br />if (commandnew == button_ok &amp;&amp; menu_logger_bit == 0 ){ //wchodzi do ustawiania jesli klawisz ok i menu_logger_bit =0<br />menu_logger_bit = 1;<br />GLCD_ClearGraphic();<br />logowanie(&amp;menu_logger_bit);<br />commandnew=255;<br />}<br />}[/syntax]<br /><br /><br />podmenu:<br /><br /><br />[syntax=c]void wyswietlanie (int *display_mode, int *menu_display_bit){<br />//uart_puts(&quot;menu_display_bit inside= &quot;);uart_putnr(*menu_display_bit);uart_puts(&quot;\r\n&quot;);<br /><br />GLCD_ClearGraphic();<br />int mode;<br /><br />mode = *display_mode;<br /><br />while(*menu_display_bit == 1 &amp;&amp; exit_display_bit == 0 &amp;&amp; exit_displayminmax_bit == 0 ){ //wybor mode (wyswietlanie po kolei, na jednym ekranie, przewijanie, random)<br />LED1_off;<br />ir_recive(&amp;commandnew);<br />GLCD_Graph_flash_ins(displaymode,0,40);<br /><br /><br />if (commandnew == cursor_up){<br />mode++;<br />commandnew=255;<br />}<br /><br />if (commandnew == cursor_down){<br />--mode;<br />commandnew=255;<br />}<br /><br />if (mode &gt; 3){<br />mode = 3;<br />}<br /><br />if (mode &lt; 0){<br />mode = 0;<br />}<br /><br /><br /><br />switch(mode){<br />//uart_puts(&quot;display_mode select case= &quot;);uart_putnr(mode);uart_puts(&quot;\r\n&quot;);<br />case 0:<br />GLCD_Graph_flash_ins(jedenmale,125,36);<br />GLCD_Graph_flash_cdn(mode1,136,0);<br /><br />break;<br />case 1:<br />GLCD_Graph_flash_ins(dwamale,125,36);<br />GLCD_Graph_flash_cdn(mode2,136,0);<br />break;<br />case 2:<br />GLCD_Graph_flash_ins(trzymale,125,36);<br />GLCD_Graph_flash_cdn(mode3,136,0);<br />break;<br /><br />case 3:<br />GLCD_Graph_flash_ins(czterymale,125,36);<br />GLCD_Graph_flash_cdn(mode4,136,0);<br />break;<br />}<br /><br />*display_mode = mode;<br /><br />if (commandnew == button_exit &amp;&amp; *menu_display_bit == 1 &amp;&amp; exit_display_bit == 0 &amp;&amp; exit_displayminmax_bit == 0 ){ //wyjscie z ustawienia<br />//uart_puts(&quot;wejscie w save/discard = &quot;);uart_puts(&quot;\r\n&quot;);<br />exit_display_bit = 1;<br />exit_displayminmax_bit = 1;<br />GLCD_ClearGraphic();<br />commandnew=255;<br />}<br /><br />}<br />//******************************************************************************************************************************<br />while(*menu_display_bit == 1 &amp;&amp; exit_display_bit == 1 &amp;&amp; exit_displayminmax_bit == 1 ){//wybor co ma wyswietlac<br />LED1_off;<br />ir_recive(&amp;commandnew);<br />//0 ,17, 33, 49<br />GLCD_Graph_flash_cdn(display_setup_option,0,0);<br /><br /><br />//uart_puts(&quot;al_on_display= &quot;);uart_putnr(al_on_display);uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;dat_on_display= &quot;);uart_putnr(dat_on_display);uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;minmaxtout= &quot;);uart_putnr(minmaxtout);uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;dra_chart_temp= &quot;);uart_putnr(dra_chart_temp);uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;dra_chart_hum= &quot;);uart_putnr(dra_chart_hum);uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;dra_chart_pres= &quot;);uart_putnr(dra_chart_pres);uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;zaznacz= &quot;);uart_putnr(zaznacz);uart_puts(&quot;\r\n&quot;);<br /><br /><br /><br /><br />if (commandnew == cursor_down &amp;&amp; exit_displayminmax_bit == 1){<br />zaznacz = zaznacz + 1;<br />commandnew=255;<br />}<br /><br />if (commandnew == cursor_up &amp;&amp; exit_displayminmax_bit == 1){<br />zaznacz = zaznacz - 1;<br />commandnew=255;<br />}<br /><br />if (zaznacz &gt; 5){<br />zaznacz = 5;<br />}<br /><br />if (zaznacz == -1){<br />zaznacz = 0;<br />}<br /><br />//***************************************************************************//rysowanie podmenu<br />switch(zaznacz){<br /><br />case 0: GLCD_Graph_flash_cdn(alarm_on_display,0,17);<br />GLCD_Graph_flash_cdn(data_on_display,0,33);<br />GLCD_Graph_flash_cdn(temperature_out_min_max,0,49);<br />GLCD_Graph_flash_ins(strzalka,220,17);<br />GLCD_Graph_flash_ins_del(strzalka,220,33);<br />GLCD_Graph_flash_ins_del(strzalka,220,49);<br /><br />if (commandnew == cursor_left &amp;&amp; al_on_display == 0){<br />al_on_display = 1;<br />commandnew=255;<br />}<br />if (commandnew == cursor_left &amp;&amp; al_on_display == 1){<br />al_on_display = 0;<br />commandnew=255;<br />}<br /><br />break;<br /><br />case 1: GLCD_Graph_flash_cdn(alarm_on_display,0,17);<br />GLCD_Graph_flash_cdn(data_on_display,0,33);<br />GLCD_Graph_flash_cdn(temperature_out_min_max,0,49);<br />GLCD_Graph_flash_ins(strzalka,220,33);<br />GLCD_Graph_flash_ins_del(strzalka,220,17);<br />GLCD_Graph_flash_ins_del(strzalka,220,49);<br /><br />if (commandnew == cursor_left &amp;&amp; dat_on_display == 0 ){<br />dat_on_display = 1;<br />commandnew=255;<br />}<br /><br />if (commandnew == cursor_left &amp;&amp; dat_on_display == 1){<br />dat_on_display = 0;<br />commandnew=255;<br />}<br /><br />break;<br /><br />case 2: if (clear_enable == 0 ){<br />GLCD_ClearGraphic();<br />clear_enable = 1;<br />}<br /><br />GLCD_Graph_flash_cdn(alarm_on_display,0,17);<br />GLCD_Graph_flash_cdn(data_on_display,0,33);<br />GLCD_Graph_flash_cdn(temperature_out_min_max,0,49);<br />GLCD_Graph_flash_ins(strzalka,220,49);<br />GLCD_Graph_flash_ins_del(strzalka,220,17);<br />GLCD_Graph_flash_ins_del(strzalka,220,33);<br /><br />if (commandnew == cursor_left &amp;&amp; minmaxtout == 0 ){<br />minmaxtout = 1;<br />commandnew=255;<br />}<br /><br />if (commandnew == cursor_left &amp;&amp; minmaxtout == 1){<br />minmaxtout = 0;<br />commandnew=255;<br />}<br />break;<br /><br />case 3:if (clear_enable == 1 ){<br />GLCD_ClearGraphic();<br />clear_enable = 0;<br />}<br /><br />GLCD_Graph_flash_cdn(draft_chart_temp,0,17);<br />GLCD_Graph_flash_cdn(draft_chart_hum,0,33);<br />GLCD_Graph_flash_cdn(draft_chart_pres,0,49);<br />//GLCD_Graph_flash_ins(strzalka,220,49);<br />GLCD_Graph_flash_ins(strzalka,220,17);<br />GLCD_Graph_flash_ins_del(strzalka,220,33);<br />GLCD_Graph_flash_ins_del(strzalka,220,49);<br /><br />if (commandnew == cursor_left &amp;&amp; dra_chart_temp == 0 ){<br />dra_chart_temp = 1;<br />commandnew=255;<br />}<br /><br />if (commandnew == cursor_left &amp;&amp; dra_chart_temp == 1){<br />dra_chart_temp = 0;<br />commandnew=255;<br />}<br /><br /><br />break;<br /><br />case 4:GLCD_Graph_flash_cdn(draft_chart_temp,0,17);<br />GLCD_Graph_flash_cdn(draft_chart_hum,0,33);<br />GLCD_Graph_flash_cdn(draft_chart_pres,0,49);<br />GLCD_Graph_flash_ins(strzalka,220,33);<br />GLCD_Graph_flash_ins_del(strzalka,220,17);<br />GLCD_Graph_flash_ins_del(strzalka,220,49);<br /><br />if (commandnew == cursor_left &amp;&amp; dra_chart_hum == 0 ){<br />dra_chart_hum = 1;<br />commandnew=255;<br />}<br /><br />if (commandnew == cursor_left &amp;&amp; dra_chart_hum == 1){<br />dra_chart_hum = 0;<br />commandnew=255;<br />}<br /><br /><br />break;<br /><br />case 5:GLCD_Graph_flash_cdn(draft_chart_temp,0,17);<br />GLCD_Graph_flash_cdn(draft_chart_hum,0,33);<br />GLCD_Graph_flash_cdn(draft_chart_pres,0,49);;<br />GLCD_Graph_flash_ins(strzalka,220,49);<br />GLCD_Graph_flash_ins_del(strzalka,220,17);<br />GLCD_Graph_flash_ins_del(strzalka,220,33);<br />if (commandnew == cursor_left &amp;&amp; dra_chart_pres == 0 ){<br />dra_chart_pres = 1;<br />commandnew=255;<br />}<br /><br />if (commandnew == cursor_left &amp;&amp; dra_chart_pres == 1){<br />dra_chart_pres = 0;<br />commandnew=255;<br />}<br /><br />break;<br />}<br /><br /><br /><br /><br /><br />//uart_puts(&quot;zaznacz = &quot;);uart_putnr(zaznacz);uart_puts(&quot;\r\n&quot;);<br />//****************************************************************************rysowanie kwadratow z zaznaczniem<br /><br />if (al_on_display == 1 &amp;&amp; zaznacz &lt;= 2 ){<br />GLCD_Graph_flash_ins(checked,200,17); //box zaznaczanie<br />}<br /><br />if (al_on_display == 0  &amp;&amp; zaznacz &lt;= 2) {<br />GLCD_Graph_flash_ins(uncheck,200,17);//box zaznaczanie<br />}<br /><br />if (dat_on_display == 1 &amp;&amp; zaznacz &lt;= 2 ){<br />GLCD_Graph_flash_ins(checked,200,33);//box zaznaczanie<br />}<br /><br />if (dat_on_display == 0 &amp;&amp; zaznacz &lt;= 2 ){<br />GLCD_Graph_flash_ins(uncheck,200,33);//box zaznaczanie<br />}<br /><br />if (minmaxtout == 1 &amp;&amp; zaznacz &lt;= 2 ){<br />GLCD_Graph_flash_ins(checked,200,49);//box zaznaczanie<br />}<br /><br />if (minmaxtout == 0 &amp;&amp; zaznacz &lt;= 2 ){<br />GLCD_Graph_flash_ins(uncheck,200,49);//box zaznaczanie<br />}<br /><br />if (dra_chart_temp == 1 &amp;&amp; zaznacz &gt; 2 ){<br />GLCD_Graph_flash_ins(checked,200,17); //box zaznaczanie<br />}<br /><br />if (dra_chart_temp == 0 &amp;&amp; zaznacz &gt; 2 ){<br />GLCD_Graph_flash_ins(uncheck,200,17);//box zaznaczanie<br />}<br /><br />if (dra_chart_hum == 1 &amp;&amp; zaznacz &gt; 2){<br />GLCD_Graph_flash_ins(checked,200,33);//box zaznaczanie<br />}<br /><br />if (dra_chart_hum == 0 &amp;&amp; zaznacz &gt; 2){<br />GLCD_Graph_flash_ins(uncheck,200,33);//box zaznaczanie<br />}<br /><br />if (dra_chart_pres == 1 &amp;&amp; zaznacz &gt; 2){<br />GLCD_Graph_flash_ins(checked,200,49);//box zaznaczanie<br />}<br /><br />if (dra_chart_pres == 0 &amp;&amp; zaznacz &gt; 2){<br />GLCD_Graph_flash_ins(uncheck,200,49);//box zaznaczanie<br />}<br /><br />//****************************************************************************<br /><br /><br /><br />if (commandnew == button_exit &amp;&amp; *menu_display_bit == 1  &amp;&amp; exit_displayminmax_bit == 1 &amp;&amp; exit_display_bit == 1 ){ //wyjscie z ustawienia<br />//uart_puts(&quot;wejscie w save/discard = &quot;);uart_puts(&quot;\r\n&quot;);<br />exit_displayminmax_bit = 0;<br />GLCD_ClearGraphic();<br />commandnew=255;<br />}<br /><br />}<br /><br />//******************************************************************************************************************************zapis<br /><br /><br /><br />while(*menu_display_bit == 1  &amp;&amp; exit_display_bit == 1 &amp;&amp; exit_displayminmax_bit == 0 ){<br />ir_recive(&amp;commandnew);<br />///uart_puts(&quot;save/discard = &quot;);uart_puts(&quot;\r\n&quot;);<br />//if (commandnew != 255){<br />//uart_puts(&quot;commandnew &quot;); uart_putnr(commandnew);uart_puts(&quot;\r\n&quot;);<br />//}<br /><br /><br />if (*menu_display_bit == 1 &amp;&amp; exit_display_bit == 1 ){<br />if (pozycjanr == 2){ //n<br />pozycjanr = 0;//n<br />}<br />ustawienie_pozycji(&amp;pozycja,&amp;pozycjanr); //ustawienie podkreslenia<br />}<br /><br /><br /><br />if (commandnew == button_ok &amp;&amp; *menu_display_bit == 1 &amp;&amp; exit_display_bit == 1 &amp;&amp; pozycjanr == 0 ){<br /><br />//uart_puts(&quot;button_ok zapis = &quot;);uart_puts(&quot;\r\n&quot;);<br />*menu_display_bit = 0;<br />exit_display_bit = 0;<br />writeData(display_mode_eeprom,mode); //zapis ustawien do komorki 3 //zapis podswietlenia<br />writeData(al_on_display_eeprom,al_on_display);<br />writeData(dat_on_display_eeprom,dat_on_display);<br />writeData(minmaxtout_eeprom,minmaxtout);<br />writeData(dra_chart_temp_eeprom,dra_chart_temp);<br />writeData(dra_chart_pres_eeprom,dra_chart_pres);<br />writeData(dra_chart_hum_eeprom,dra_chart_hum);<br /><br />GLCD_ClearGraphic();<br />commandnew=255;<br />*display_mode = readData(display_mode_eeprom); //odczyt display_mode z pamieci<br />}<br /><br />if (commandnew == button_ok &amp;&amp; *menu_display_bit == 1 &amp;&amp; exit_display_bit == 1 &amp;&amp; pozycjanr == 1 ){<br /><br />//uart_puts(&quot;button_ok bez zapisu = &quot;);uart_puts(&quot;\r\n&quot;);<br />*menu_display_bit = 0;<br />exit_display_bit = 0;<br />GLCD_ClearGraphic();<br />commandnew=255;<br />*display_mode = readData(display_mode_eeprom); //odczyt display_mode z pamieci<br />}<br /><br />if (*menu_display_bit == 1 &amp;&amp; exit_display_bit == 1){<br />GLCD_Graph_flash_ins(save,32,35);<br />GLCD_Graph_flash_ins(discard,121,35);<br />GLCD_Graph_flash_ins(minus,pozycja,50);<br />}<br />//uart_puts(&quot;pozycjanr = &quot;);uart_putnr(pozycjanr);uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;menu_display_bit = &quot;);uart_putnr(*menu_display_bit);uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;exit_display_bit = &quot;);uart_putnr(exit_display_bit);uart_puts(&quot;\r\n&quot;);<br />}<br /><br /><br /><br /><br /><br />//return *menu_display_bit;<br />}[/syntax]<br /><br /><br />Namieszane wiem, ale dawno to pisalem i teraz bym to inaczej zrobil, za duzo zmiennych itp, krytykowac mozecie:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 11 gru 2015, o 13:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-12-11T08:52:38+01:00</updated>
<published>2015-12-11T08:52:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147645#p147645</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147645#p147645"/>
<title type="html"><![CDATA[Re: Menu - LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147645#p147645"><![CDATA[
Witam<br />Pooglądaj to; ja mam trzy przyciski i dwa uruchamiają się po wciśnięciu MODE ( a dokładnie po puszczeniu - no ale najpierw &quot;trza go wdusić&quot;  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ) :<br />[syntax=c]void key_mode(void)<br />{<br /><br /> if(praca_key_flag){//wykonaj te prace 20Xna sekunde<br /><br />praca_key_flag=0;<br /><br />switch (mode){<br />case 1://wyświetl temp aktualną<br />if(MODE_down)<br />mode=11;<br />  /* wyświetlanie aktualnej temperatury */<br /> napis =0;<br />minus=subzero;<br />st    =cel ;<br />dz_st =cel_fract_bits;<br />        pom_temp= (st*10)+dz_st;//pomocnicza dla OUTPUT<br /><br />break;<br /><br /><br />case 2://wyświetl temp dziesiętną ustaloną<br />if(MODE_down)<br />mode=12;<br /><br />pom_ustaw_dz_temp = temp_dz_ustalona;<br />if (UP_down &amp;&amp; pom_ustaw_dz_temp&lt;9)pom_ustaw_dz_temp++;<br />if (DOWN_down &amp;&amp;pom_ustaw_dz_temp&gt;0)pom_ustaw_dz_temp--;<br />temp_dz_ustalona =pom_ustaw_dz_temp;<br />              <br />break;<br /><br /><br />case 3://wyświetl temp całkowitą ustaloną<br />if(MODE_down)<br />mode=13;<br />pom_ustaw_temp =temp_ustalona ;<br /><br />if (UP_down &amp;&amp; pom_ustaw_temp&lt;99)pom_ustaw_temp++;<br />if (DOWN_down &amp;&amp; pom_ustaw_temp&gt;0)pom_ustaw_temp--;<br />temp_ustalona    =pom_ustaw_temp;<br /><br />   break;<br /><br /><br />case 4://wyświetl histereze<br />if(MODE_down)<br />mode=14;<br />pom_licz_hister = histereza_ustalona;<br />if (UP_down  &amp;&amp; pom_licz_hister&lt;99)pom_licz_hister++;<br />if (DOWN_down &amp;&amp; pom_licz_hister&gt;1)pom_licz_hister--;<br />histereza_ustalona =pom_licz_hister;<br /><br />break;<br /><br />case 5://wyświetl tryb ON/OFF<br />if (MODE_down){<br />mode=15;<br />}<br /><br />if (UP_down &amp;&amp; tryb&lt;=203)tryb=202; //202--po przekroczeniu włącz wyjscie<br />if (DOWN_down &amp;&amp; tryb&gt;=202 )tryb=203;//203- po przekroczeniu wyłacz wyjscie<br /><br />break;<br /><br /><br />case 11:<br />if (!MODE_down)<br />mode=2;<br />break;<br /><br /><br />case 12:<br />if (!MODE_down){<br />eeprom_write_byte( (uint8_t  *) &amp;e_temp_dz_ustalona, temp_dz_ustalona);<br />mode=3;<br />               }<br />    break;<br /><br />case 13:<br />if (!MODE_down){<br />eeprom_write_byte( (uint8_t  *) &amp;e_temp_ustalona, temp_ustalona);<br />mode=4;<br />            }<br />break;<br /><br /><br />case 14:<br />if (!MODE_down){<br />eeprom_write_byte( (uint8_t  *) &amp;e_histereza_ustalona, histereza_ustalona);<br />mode=5;<br />}<br />break;<br /><br />case 15:<br />if (!MODE_down){<br />eeprom_write_byte( (uint8_t  *) &amp;e_tryb, tryb);<br /><br />}<br />    break;<br />}<br /><br /> }<br />}[/syntax]<br />Musisz sobie zdefiniować:<br />[syntax=c]#define MODE_PIN (1&lt;&lt;PB5)// makrodefinicja pinu do którego podłączono przycisk<br />#define MODE_down !(PINB &amp; MODE_PIN)// przycisk naciśnięty<br /><br />#define UP_PIN (1&lt;&lt;PB3)// makrodefinicja pinu do którego podłączono przycisk up<br />#define UP_down !(PINB &amp; UP_PIN)// przycisk naciśnięty<br /><br />#define DOWN_PIN (1&lt;&lt;PB4)// makrodefinicja pinu do którego podłączono przycisk down<br />#define DOWN_down !(PINB &amp; DOWN_PIN)// przycisk naciśnięty[/syntax]<br />To tak poglądowo, jak to robią inni.<br />Nie wiem gdzie mi się podziała czytelniejsza wersja - zamiast &quot;mode= <em>liczba</em>&quot; zmieniłem na enum i od razu widać co się tam dzieje. <br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 11 gru 2015, o 08:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2015-12-11T08:11:59+01:00</updated>
<published>2015-12-11T08:11:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147642#p147642</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147642#p147642"/>
<title type="html"><![CDATA[Menu - LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13831&amp;p=147642#p147642"><![CDATA[
Hej , <br /><br />Robię właśnie menu na wyświetlaczu LCD<br />Mam 4 przyciski , chciałbym aby po kliknięciu S1 wchodziło się do menu i dopiero później uaktywniły się pozostałe. <br />[syntax=c]lcd_locate(0,0);<br />            lcd_str(&quot;TEST&quot;);<br /><br />            if(S1)<br />            {<br />            _delay_ms(80);<br /><br />            if(S1)<br />            {<br />             menu(menu_element);<br />            while(1)<br />            {<br />            if(S2)<br />            {<br />            _delay_ms(80);<br />            }<br />                if(S2)<br />                {<br />                menu_element++;<br />                }<br />            }<br />            }<br />           }<br />         }[/syntax]<br /><br />Niestety to tak nie działa ;/ <br /><br />Mam inny program który działa tak jak chce no ale jakoś nie umiem go zrozumieć jest chaotycznie napisany ...<br /><br />[syntax=c]if(S1)<br />                 {<br />           _delay_ms(80);<br />              if(S1)<br />                 {<br />                    lcd_cls();<br />                 lcd_locate(0,0);<br />                 lcd_str_P(PSTR(&quot;    Nastawa&quot; ));<br />                lcd_locate(1,0);<br />               lcd_str_P(PSTR(&quot;  Temperatury&quot;));<br />               _delay_ms(500);<br />                    lcd_cls();<br />              while(1)<br />                {<br />                  lcd_locate(0,0);<br />                  lcd_str(&quot;S1&quot;&quot;\x82&quot;);<br />                  lcd_locate(0,4);<br />                  lcd_str(&quot;\x80 &quot;);<br />              if (T_zad&lt;10)<br />                  {<br />                    lcd_str(&quot; &quot;);<br />                    lcd_int(T_zad);<br />                  }<br />              else<br />              {<br />                  lcd_int(T_zad);<br />                  }<br /><br />                    lcd_locate(0,8);<br />                    lcd_str(&quot;\x81&quot;&quot;C&quot;);<br />                    lcd_locate(0,11);<br />                    lcd_str(&quot;\x80 &quot;);<br />                    lcd_locate(0,13);<br />                    lcd_str(&quot;\x83&quot;&quot;S2&quot;);<br />                    lcd_locate(1,0);<br />                    lcd_str(&quot;S4-Wyj&quot;&quot;  &quot;&quot;S3-Hist.&quot;);<br />              if(S1)// temperatura w górę<br />                  {<br />                    _delay_ms(80);<br />              if(S1)<br />                    {<br />                  T_zad++;<br />              if(T_zad&gt;99) T_zad=1;<br />                    }<br /><br />                  }<br />              if(S2)// temperatura w dół<br />                  {<br />                    _delay_ms(80);<br />              if(S2)<br />                    {<br />                    T_zad--;<br />              if(T_zad&lt;=1) T_zad=99;<br />                      }<br />                  }<br />              if(S3)// wejście do ustawień histerezy<br />                  {<br />                    _delay_ms(80);<br />              if(S3)<br />                      {<br />                    lcd_cls();<br />              while(1)<br />                      {<br />                    lcd_locate(0,0);<br />                    lcd_str_P(PSTR(&quot;Histereza:   +/-&quot;));<br />                    lcd_locate(1,4);<br />                    lcd_str(&quot;\x80&quot;);<br />       if (HIS&lt;10)<br />                      {<br />                lcd_locate(1,6);<br />               lcd_str(&quot; &quot;);<br />               lcd_int(HIS);<br />               lcd_str(&quot;\x81&quot;&quot;C&quot;);<br />               lcd_str(&quot; \x80&quot;);<br />          }<br />              else<br />                      {<br />                    lcd_locate(1,6);<br />                    lcd_int(HIS);<br />                    lcd_str(&quot;\x81&quot;&quot;C&quot;);<br />                    lcd_str(&quot; \x80&quot;);<br />                      }<br />              if(S1)<br />                   {<br />                    _delay_ms(80);<br />              if(S1)<br />                        {<br />                   HIS++;<br />              if(HIS&gt;15) HIS=1;<br />                        }<br />                   }<br />              if(S2)<br />                   {<br />                   _delay_ms(80);<br />              if(S2)<br />                    {<br />                   HIS--;<br />              if(HIS&lt;=1) HIS=15;<br />                      }<br />                   }<br />              if(S4)//wyjście z ustawień histerezy<br />                        {<br />                   _delay_ms(80);<br />              if(S4)<br />                   {<br />                  lcd_cls();<br />                  eeprom_write_byte((uint8_t *)2,HIS);<br />    break;<br />                         }<br />                   }<br />                   }<br />                   }<br />                   }<br /><br />              if(S4)//wyjście z ustawień nastawy temperatury<br />                      {<br />                  _delay_ms(80);<br />              if(S4)<br />                   {<br />                  lcd_cls();<br />                  eeprom_write_byte((uint8_t *)3,T_zad);<br />                  break;<br />                       }<br />                   }<br />                 }<br />              }<br />          }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 11 gru 2015, o 08:11</p><hr />
]]></content>
</entry>
</feed>