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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-09-22T21:48:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9956&amp;mode</id>
<entry>
<author><name><![CDATA[Jarcio]]></name></author>
<updated>2015-09-22T21:48:49+01:00</updated>
<published>2015-09-22T21:48:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=140426#p140426</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=140426#p140426"/>
<title type="html"><![CDATA[Re: Problem z menu LCD.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=140426#p140426"><![CDATA[
W sumie nie powinienem chyba odsyłać kolegi do tego kodu <a href="http://forum.atnel.pl/topic12892.html"  class="postlink">http://forum.atnel.pl/topic12892.html</a>. Kod działa, tylko stylistycznie jest straszny, do tego obsługa klawiszy najprostsza z możliwych. Też się dopiero uczę C. Dostałem za niego trochę uwag że nie jest napisany jak powinien.<br />Ale jest tam pokazane jak rozwiązałem ten problem o który Tobie chodzi, czyli obsługa klawiszy w jakiejś podfunkcji do obsługi menu.<br />A poniżej coś w pseudokodzie dla pokazania sposobu rozwiązania problemu:<br />[syntax=c]int main (void)<br />{<br />   while (1)<br />   {<br />       Klawisz 1 - wywołanie z menu funkcji ustaw_czas<br />   }<br />}<br /><br />void ustaw_czas (void)<br />{<br />   uint8_t w_funkcji = 1;<br />   // jak wejdziesz do funkcji to aby się od razu nie zakończyła to robimy tu pętelkę<br />   while (w_funkcji)<br />   {<br />      // teraz podpinamy sobie ponownie obsługę klawiszy <br />      // może nawet być całkiem inaczej niż w main<br />      klawisz 1 - zwiększ np. godzinę<br />      klawisz 2 - zmniejsz np. godzinę<br />      klawisz 3 - anuluj zmiany<br />      klawisz 4 - zatwierdź zmiany<br />      // aby zakończyć funkcję np. jak ustawiliśmy godzinę lub anulowaliśmy zmiany <br />      // w naszym wypadku przy obsłudze klawisz 3 i klawisz 4 należy <br />      // &quot;wyzerować &quot; zmienną w_funkcji co spowoduje zakończenie działania pętli w funkcji ustaw_czas<br />      // i powrót do pętelki w main<br />      // czyli zakończymy obsługę jednej pozycji w menu i będzie można w menu wybrać inną pozycję<br />   }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10579">Jarcio</a> — 22 wrz 2015, o 21:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-09-21T20:14:53+01:00</updated>
<published>2015-09-21T20:14:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=140347#p140347</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=140347#p140347"/>
<title type="html"><![CDATA[Re: Problem z menu LCD.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=140347#p140347"><![CDATA[
Przykład podmiany funkcji w zależności od zmiennej wsk_menu:<br />[syntax=c]void (*ptr_press_right)(void); //deklaracja wskaznika do funkcji<br />void (*ptr_press_left)(void); <br />void (*ptr_press_enter)(void); <br />void (*ptr_press_esc)(void); <br /><br />void (*ptr_rep_right)(void); <br />void (*ptr_rep_left)(void); <br />void (*ptr_rep_enter)(void); <br />void (*ptr_rep_esc)(void); <br /><br />//...<br />while(1){<br />   if ( int0_flag ) {<br />      //odczyt 4 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC<br />      TWI_read_buf( DS1307_ADDR, 0x00, 3, bufor );<br />      sekundy = bcd2dec( bufor&#91;ss&#93; );<br />      minuty = bcd2dec( bufor&#91;mm&#93; );<br />      godziny = bcd2dec( bufor&#91;hh&#93; );        <br />      int0_flag=0;<br />   }<br />   menu(element);<br />   if(wsk_menu == 0)<br />   {<br />      ptr_press_left = kl_prawo_press; //przypisanie funkcji do wskaznika<br />      ptr_press_right = kl_prawo_press; <br />      ptr_press_esc = kl_prawo_press; <br />      ptr_press_enter = kl_prawo_press; <br /><br />      ptr_rep_left = kl_prawo_rep; //przypisanie funkcji do wskaznika<br />      ptr_rep_right = kl_prawo_rep; <br />      ptr_rep_esc = kl_prawo_rep; <br />      ptr_rep_enter = kl_prawo_rep; <br />   }<br />   else if(wsk_menu == 1)<br />   {<br />      ptr_press_right = zwieksz; //przypisanie innej funkcji do wskaznika<br />      ptr_press_left = zmniejsz; <br />      ptr_press_enter = dalej; <br />      ptr_press_esc = wstecz; <br /><br />      ptr_rep_right = zwieksz10; <br />      ptr_rep_left = zmniejsz10; <br />      ptr_rep_enter = ustaw; <br />      ptr_rep_esc = wyjdz; <br />   }<br />   else if(wsk_menu == 2)<br />   {<br />      //podobnie jak wyżej<br />   }<br />   else if(wsk_menu == 3)<br />  {<br />      ptr_press_right = NULL; //wyzerowanie wskaznika = brak reakcji<br />      ptr_press_left = NULL; <br />      ptr_press_enter = ustawienie_czasu; <br />      ptr_press_esc = wstecz;<br />      ptr_rep_right = NULL; <br />      ptr_rep_left = NULL; <br />      ptr_rep_enter = NULL;<br />      ptr_rep_esc = NULL; <br />   }<br />   else if (wsk_menu == 4)<br />   {<br />      ptr_press_right = NULL; //wyzerowanie wskaznika = brak reakcji<br />      ptr_press_left = NULL; <br />      ptr_press_enter = ustawienie_daty; <br />      ptr_press_esc = wstecz;<br />      ptr_rep_right = NULL; <br />      ptr_rep_left = NULL; <br />      ptr_rep_enter = NULL;<br />      ptr_rep_esc = NULL; <br />   }<br /><br />   SuperDebounce(&amp;k1, &amp;PINA, KL_PRAWO, 0, 100, ptr_press_right, ptr_rep_right );<br />   SuperDebounce(&amp;k2, &amp;PINA, KL_LEWO, 2, 100, ptr_press_left, ptr_rep_left );<br />   SuperDebounce(&amp;k3, &amp;PINA, KL_ENTER, 2, 100, ptr_press_enter, ptr_rep_enter );<br />   SuperDebounce(&amp;k4, &amp;PINA, KL_ESC, 2, 100, ptr_press_esc, ptr_rep_esc );<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 21 wrz 2015, o 20:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[raf_w]]></name></author>
<updated>2015-09-14T20:55:28+01:00</updated>
<published>2015-09-14T20:55:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=139836#p139836</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=139836#p139836"/>
<title type="html"><![CDATA[Re: Problem z menu LCD.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=139836#p139836"><![CDATA[
Witam<br />mógłby kolega napisać przykład jak ma być to zrealizowane z tą zmienną... jestem początkujący i utknąłem w tym miejscu w moim podobnym programie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10211">raf_w</a> — 14 wrz 2015, o 20:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-01-03T15:18:48+01:00</updated>
<published>2015-01-03T15:18:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=111961#p111961</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=111961#p111961"/>
<title type="html"><![CDATA[Re: Problem z menu LCD.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=111961#p111961"><![CDATA[
W tym miejscu:<br /><div class="quotetitle">Vitor Borba napisał(a):</div><div class="quotecontent"><br />[syntax=c]while(1){<br />   if ( int0_flag ) {<br />      //odczyt 4 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC<br />      TWI_read_buf( DS1307_ADDR, 0x00, 3, bufor );<br />      sekundy = bcd2dec( bufor&#91;ss&#93; );<br />      minuty = bcd2dec( bufor&#91;mm&#93; );<br />      godziny = bcd2dec( bufor&#91;hh&#93; );        <br />      int0_flag=0;<br />   }<br />   SuperDebounce(&amp;k1, &amp;PINA, KL_PRAWO, 0, 100, kl_prawo_press, kl_prawo_rep );<br />   SuperDebounce(&amp;k2, &amp;PINA, KL_LEWO, 2, 100, kl_lewo_press, kl_lewo_rep );<br />   SuperDebounce(&amp;k3, &amp;PINA, KL_ENTER, 2, 100, kl_enter_press, kl_enter_rep );<br />   SuperDebounce(&amp;k4, &amp;PINA, KL_ESC, 2, 100, kl_esc_press, kl_esc_rep );<br />   menu(element);<br /> <br />   if (wsk_menu==2 &amp;&amp; wsk_enter==1) ustawienie_czasu();<br />   if (wsk_menu==3 &amp;&amp; wsk_enter==1) ustawienie_daty();<br />}[/syntax]<br /></div><br />Podmieniasz funkcje przycisków w zależności od zmiennej wsk_menu:<br />[syntax=c]while(1){<br />   if ( int0_flag ) {<br />      //odczyt 4 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC<br />      TWI_read_buf( DS1307_ADDR, 0x00, 3, bufor );<br />      sekundy = bcd2dec( bufor&#91;ss&#93; );<br />      minuty = bcd2dec( bufor&#91;mm&#93; );<br />      godziny = bcd2dec( bufor&#91;hh&#93; );        <br />      int0_flag=0;<br />   }<br />   if(wsk_menu == 0)<br />   {<br />      SuperDebounce(&amp;k1, &amp;PINA, KL_PRAWO, 0, 100, kl_prawo_press, kl_prawo_rep );<br />      SuperDebounce(&amp;k2, &amp;PINA, KL_LEWO, 2, 100, kl_lewo_press, kl_lewo_rep );<br />      SuperDebounce(&amp;k3, &amp;PINA, KL_ENTER, 2, 100, kl_enter_press, kl_enter_rep );<br />      SuperDebounce(&amp;k4, &amp;PINA, KL_ESC, 2, 100, kl_esc_press, kl_esc_rep );<br />      menu(element);<br />   }<br />   else if(wsk_menu == 2) //ustawienie_czasu<br />   {<br />      SuperDebounce(&amp;k1, &amp;PINA, KL_PRAWO, 0, 100, zwieksz, zwieksz10 ); //inkrementacja zmiennej o 1 lub 10<br />      SuperDebounce(&amp;k2, &amp;PINA, KL_LEWO, 2, 100, zmniejsz, zmniejsz10 ); //dekrementacja zmiennej o 1 lub 10<br />      SuperDebounce(&amp;k3, &amp;PINA, KL_ENTER, 2, 100, dalej, ustaw ); //kolejna zmienna lub zapis i wyjście<br />      SuperDebounce(&amp;k4, &amp;PINA, KL_ESC, 2, 100, wstecz, wyjdz ); //poprzednia zmienna lub wyjście bez zmian<br />   }<br />   else if(wsk_menu == 2) //ustawienie_czasu<br />   {<br />      //podobnie jak wyżej<br />   }<br />   if (wsk_menu==2 &amp;&amp; wsk_enter==1) ustawienie_czasu();<br />   if (wsk_menu==3 &amp;&amp; wsk_enter==1) ustawienie_daty();<br />}[/syntax]<br />To tak pokrótce, bo jeszcze wymaga zmian w działaniu. Zasadniczo w każdym podmenu powinny być realizowane inne funkcje dla każdego klawisza, a można to rozdzielić korzystając ze zmiennej która będzie przechowywała aktualnie realizowaną funkcję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 3 sty 2015, o 15:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vitor Borba]]></name></author>
<updated>2014-12-31T15:42:04+01:00</updated>
<published>2014-12-31T15:42:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=111470#p111470</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=111470#p111470"/>
<title type="html"><![CDATA[Problem z menu LCD.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9956&amp;p=111470#p111470"><![CDATA[
Witam, stworzyłem sobie menu które składa się z nazwy opcji (Menu, ustaw godzine, ustaw date , ustaw temp, włacz oswietlenie , wylacz oswietlenie,wlacz w1, wylacz w2) poruszamy się w nim poprzez przyciskam #define KL_PRAWO (1&lt;&lt;PA4)<br />#define KL_LEWO (1&lt;&lt;PA5). Jeśli na danym menu wciśniemy przycisk #define KL_ENTER wchodzimy do podmenu w którym chciałbym ostawić datę ,temp itd. <br />Przykład jestem na Ustaw godzine nacisnę #define KL_ENTER i w tym momencie za pomocą przycisków #define KL_PRAWO (1&lt;&lt;PA4)<br />#define KL_LEWO (1&lt;&lt;PA5) chciałbym ustawić godzinę i zatwierdzić przyciskiem #define KL_ENTER.<br /><br />I teraz nie unię sobie poradzić w zbudowaniu sterownia w podmenu za pomocą przycisków prawo lewo enter itd jak i ustawieniu czasu, daty.<br />Proszę o podpowiedzi, porady itd.<br />    [syntax=c]#include &lt;avr/io.h&gt;<br />    #include &lt;avr/interrupt.h&gt;<br />    #include &lt;avr/pgmspace.h&gt;<br />    #include &lt;util/delay.h&gt;<br /><br />    #include &quot;LCD/lcd44780.h&quot;<br />    #include &quot;I2C_TWI/i2c_twi.h&quot;<br /><br />//******************************* definicje preprocesora<br />#define PLCD (1&lt;&lt;PD6)<br />#define PLCD_ON PORTD |= PLCD<br />#define PLCD_OFF PORTD &amp;= ~PLCD<br />#define PLCD_TOG PORTD ^= PLCD<br /><br />#define KL_PRAWO (1&lt;&lt;PA4)<br />#define KL_LEWO (1&lt;&lt;PA5)<br />#define KL_ENTER (1&lt;&lt;PA6)<br />#define KL_ESC (1&lt;&lt;PA7)<br />#define KL_DDR DDRA<br />#define KL_PORT PORTA<br /><br /><br />volatile int element;<br />volatile int wsk_menu;<br />volatile int wsk_enter;<br />volatile int wsk_dodatni;<br />volatile int blokada_menu;<br />volatile int wsk_dmenu;<br /><br />// konwersja liczby dziesiętnej na BCD<br />uint8_t dec2bcd(uint8_t dec);<br />// konwersja liczby BCD na dziesiętną<br />uint8_t bcd2dec(uint8_t bcd);<br /><br />/************** funkcja SuperDebounce do obsługi pojedynczych klawiszy ***************/<br />void SuperDebounce(uint8_t * key_state, volatile uint8_t *KPIN,<br />uint8_t key_mask, uint16_t rep_time, uint16_t rep_wait,<br />void (*push_proc)(void), void (*rep_proc)(void) );<br /><br />void kl_prawo_press(void);<br />void kl_prawo_rep(void);<br />void kl_lewo_press(void);<br />void kl_lewo_rep(void);<br />void kl_enter_press(void);<br />void kl_enter_rep(void);<br />void kl_esc_press(void);<br />void kl_esc_rep(void);<br />void menu(uint8_t element);<br />void ustawienie_czasu();<br />void ustawienie_daty();<br /><br /><br />volatile uint8_t int0_flag;// flaga zmieniana w przerwaniu i sprawdzana w pętli głównej<br /><br />// definiujemy sobie dla polepszenia czytelności programu typ wyliczeniowy<br />// wskazujący nam później na odpowiednie indeksy w tablicy (buforze)<br />enum {ss, mm, hh};<br />uint8_t bufor&#91;3&#93;;// rezerwacja bufora 4 bajty<br />uint8_t sekundy, minuty, godziny;<br /><br />volatile uint16_t Timer1, Timer2, Timer3, Timer4;/* timery programowe 100Hz */<br /><br /><br /><br /><br />int main(void){<br /><br />/*----------------------------- inicjalizacja kierunków pinów  ---------------*/<br />// ustalamy kierunki portów klawiszy na wyjściowe<br />KL_DDR &amp;= ~(KL_PRAWO|KL_LEWO|KL_ENTER|KL_ESC);<br />// włączamy podciąganie do VCC<br />KL_PORT |= KL_PRAWO|KL_LEWO|KL_ENTER|KL_ESC;<br />//kierunek pinu podswietlenia LCD<br />DDRD |= PLCD;<br />//wlaczenie podswietlenia LCD<br />PLCD_ON;<br /><br /><br />/*----------------------------- inicjalizacja przerwań  ---------------*/<br />// Przerwanie INT0<br />MCUCR |= (1&lt;&lt;ISC01);// wyzwalanie zboczem opadającym<br />GICR |= (1&lt;&lt;INT0);// odblokowanie przerwania<br />PORTD |= (1&lt;&lt;PD2);// podciągnięcie pinu INT0 do VCC<br /><br />/* Timer2 – inicjalizacja przerwania co 10ms */<br />TCCR2 |= (1&lt;&lt;WGM21);// tryb pracy CTC<br />TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);// preskaler = 1024<br />OCR2 = 107;// przerwanie porównania co 10ms (100Hz)<br />TIMSK |= (1&lt;&lt;OCIE2);// Odblokowanie przerwania CompareMatch<br /><br />/* globalne  odblokowanie przerwań */<br />sei();<br /><br />/*----------------------------- inicjalizacja modułów programowych  ---------------*/<br /><br /><br />/* inicjalizacja LCD */<br />lcd_init();<br />lcd_str(&quot;Inicjalizacja LCD&quot;);<br /><br /><br /><br /><br /><br />    i2cSetBitrate( 100 );   // USTAWIAMY prędkość 100 kHz na magistrali I2C<br />    DS1307_init();// Inicjalizacja LCD<br />    char input;<br />    uint8_t k1=0, k2=0, k3=0, k4=0;<br />    element=0;<br />    wsk_enter=0;<br />    wsk_dodatni=0;<br /><br />// Ustawianie czasu na godzinę: 18:34:27<br /><br />// setne części sekundy<br />bufor&#91;0&#93; = dec2bcd(02);// sekundy<br />bufor&#91;1&#93; = dec2bcd(01);// minuty<br />bufor&#91;2&#93; = dec2bcd(21);// godziny<br />// zapis 4 bajtów z bufora pod adres 0x01 w pamięci RAM naszego RTC<br />TWI_write_buf( DS1307_ADDR, 0x00, 3, bufor );<br /><br /><br />while(1){<br /><br />if ( int0_flag ) {<br /><br />//odczyt 4 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC<br />TWI_read_buf( DS1307_ADDR, 0x00, 3, bufor );<br /><br />sekundy = bcd2dec( bufor&#91;ss&#93; );<br />minuty = bcd2dec( bufor&#91;mm&#93; );<br />godziny = bcd2dec( bufor&#91;hh&#93; );<br /><br />/*// wyświetlenie czasu na LCD<br />lcd_locate(1,0);<br />lcd_str(&quot;                &quot;);<br />lcd_locate(1,0);<br />if( godziny &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(godziny);<br />lcd_str(&quot;:&quot;);<br />if( minuty &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(minuty);<br />lcd_str(&quot;:&quot;);<br />if( sekundy &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(sekundy);<br />*/<br /><br />int0_flag=0;<br />}<br />SuperDebounce(&amp;k1, &amp;PINA, KL_PRAWO, 0, 100, kl_prawo_press, kl_prawo_rep );<br />SuperDebounce(&amp;k2, &amp;PINA, KL_LEWO, 2, 100, kl_lewo_press, kl_lewo_rep );<br />SuperDebounce(&amp;k3, &amp;PINA, KL_ENTER, 2, 100, kl_enter_press, kl_enter_rep );<br />SuperDebounce(&amp;k4, &amp;PINA, KL_ESC, 2, 100, kl_esc_press, kl_esc_rep );<br />menu(element);<br /><br />if (wsk_menu==2 &amp;&amp; wsk_enter==1) ustawienie_czasu();<br />if (wsk_menu==3 &amp;&amp; wsk_enter==1) ustawienie_daty();<br />}<br />}<br /><br />// konwersja liczby dziesiętnej na BCD<br />uint8_t dec2bcd(uint8_t dec) {<br />return ((dec / 10)&lt;&lt;4) | (dec % 10);<br />}<br /><br />// konwersja liczby BCD na dziesiętną<br />uint8_t bcd2dec(uint8_t bcd) {<br />    return ((((bcd) &gt;&gt; 4) &amp; 0x0F) * 10) + ((bcd) &amp; 0x0F);<br />}<br />// procedura obsługi przerwania INT 0<br />ISR( INT0_vect ) {<br />int0_flag = 1;<br />}<br /><br /><br />ISR(TIMER2_COMP_vect)<br />{<br />uint16_t n;<br /><br />n = Timer1;/* 100Hz Timer1 */<br />if (n) Timer1 = --n;<br />n = Timer2;/* 100Hz Timer2 */<br />if (n) Timer2 = --n;<br />n = Timer3;/* 100Hz Timer3 */<br />if (n) Timer3 = --n;<br />n = Timer4;/* 100Hz Timer4 */<br />if (n) Timer4 = --n;<br />}<br /><br /><br /><br />//************** funkcja SuperDebounce do obsługi pojedynczych klawiszy ***************<br /> <br /><br />void kl_prawo_press(void) {<br />lcd_locate(0,0);<br />lcd_str(&quot;                &quot;);<br />wsk_dmenu++;<br />if(wsk_enter!=1) element++;<br /><br />if (element==9) element=1;<br />}<br /><br />void kl_prawo_rep(void) {<br /><br />}<br /><br />void kl_lewo_press(void) {<br />lcd_locate(0,0);<br />lcd_str(&quot;                &quot;);<br />wsk_dmenu--;<br />if(wsk_enter!=1) element--;<br />if (element&lt;1) element=8;<br />}<br /><br />void kl_lewo_rep(void) {<br /><br />}<br /><br />void kl_enter_press(void) {<br />wsk_enter=1;<br /><br />/*lcd_locate(0,0);<br />lcd_str(&quot;                &quot;);<br />lcd_locate(1,0);<br />lcd_int(wsk_enter);<br />*/<br />}<br /><br />void kl_enter_rep(void) {<br /><br />}<br /><br />void kl_esc_press(void) {<br />wsk_enter=0;<br />lcd_locate(1,0);<br />lcd_str(&quot;                &quot;);<br /><br />}<br /><br />void kl_esc_rep(void) {<br /><br />}<br />void menu(uint8_t element)<br />{<br /><br />        switch(element)<br />        {<br />        case 1:<br />        lcd_locate(0,0);<br />        lcd_str(&quot;                &quot;);                                                                 <br />                lcd_locate(0,5);<br />                lcd_str(&quot;MENU0&quot;);<br />                wsk_menu=1;<br />                break;<br />        case 2:<br />        lcd_locate(0,0);<br />        lcd_str(&quot;                &quot;);                                                                <br />                lcd_locate(0,0);<br />                lcd_str(&quot;Ustaw godzine&quot;);<br />                wsk_menu=2;<br />                break;<br />        case 3:<br />    lcd_locate(0,0);<br />    lcd_str(&quot;                &quot;);                                                                    <br />                lcd_locate(0,1);<br />                lcd_str(&quot;Ustaw date&quot;);<br />                wsk_menu=3;<br />                break;<br />        case 4:<br />            lcd_locate(0,0);<br />            lcd_str(&quot;                &quot;);                                                                     <br />                lcd_locate(0,0);<br />                lcd_str(&quot;Ustaw temp&quot;);<br />                wsk_menu=4;<br />                break;<br />        case 5:<br />            lcd_locate(0,0);<br />            lcd_str(&quot;                &quot;);                                                                      <br />                        lcd_locate(0,0);<br />                        lcd_str(&quot;Wlacz oswietlenie&quot;);<br />                        wsk_menu=5;<br />                        break;<br />        case 6:<br />            lcd_locate(0,0);<br />            lcd_str(&quot;                &quot;);                                                                    <br />                        lcd_locate(0,0);<br />                        lcd_str(&quot;Wylacz oswietlenie&quot;);<br />                        wsk_menu=6;<br />                        break;<br />        case 7:<br />            lcd_locate(0,0);<br />            lcd_str(&quot;                &quot;);                                                                     <br />                        lcd_locate(0,1);<br />                        lcd_str(&quot;Wlacz w1&quot;);<br />                        wsk_menu=7;<br />                        break;<br />        case 8:<br />            lcd_locate(0,0);<br />            lcd_str(&quot;                &quot;);                                                                      <br />                        lcd_locate(0,1);<br />                        lcd_str(&quot;Wylacz w2&quot;);<br />                        wsk_menu=8;<br />                      break;<br />        }<br /><br />}<br /><br />void ustawienie_czasu(){<br />uint8_t godz=12;<br />uint8_t min=12;<br />uint8_t sec=12;<br /><br /><br /><br /><br />lcd_locate(1,0);<br />lcd_str(&quot;                &quot;);<br />lcd_locate(1,0);<br /><br />lcd_int(godz);<br />lcd_str(&quot;:&quot;);<br /><br />lcd_int(min);<br />lcd_str(&quot;:&quot;);<br /><br />lcd_int(sec);<br /><br /><br /><br /><br />}<br /><br />void ustawienie_daty(){<br />uint8_t godz=14;<br />uint8_t min=14;<br />uint8_t sec=14;<br /><br />lcd_locate(1,0);<br />lcd_str(&quot;                &quot;);<br />lcd_locate(1,0);<br /><br />lcd_int(godz);<br />lcd_str(&quot;:&quot;);<br /><br />lcd_int(min);<br />lcd_str(&quot;:&quot;);<br /><br />lcd_int(sec);<br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1652">Vitor Borba</a> — 31 gru 2014, o 15:42</p><hr />
]]></content>
</entry>
</feed>