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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-29T13:48:03+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19872&amp;mode</id>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2017-12-29T13:48:03+01:00</updated>
<published>2017-12-29T13:48:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201228#p201228</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201228#p201228"/>
<title type="html"><![CDATA[Re: brak wyświetlania kursora na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201228#p201228"><![CDATA[
No to teraz po kolei wstawiaj stop(); w kolejne miejsca programu. <br />Aż dojdziesz do tego miejsca w którym coś nadpisujesz.<br />Linia 146 kończy funkcję zegarek();<br />Jak dobrze widzę w pętli głównej następna funkcja to<br />[syntax=c]while (1)<br />    {<br />        lcd_locate(0,9);<br />        lcd_blink_on();<br />        keypressed();<br />        zegarek();<br />        kalendarz();<br />        alarm();<br />        .....[/syntax]<br /><br />kalendarz ();<br />Wstawiaj &quot;stop&quot; po kolei aż dojdziesz gdzie jest babol.<br />Czasem można kod oglądać wiele razy i nic <br />Jak będziesz przestawiał pułapki to wyeliminujesz szybko, działające części programu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 29 gru 2017, o 13:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dzerwis]]></name></author>
<updated>2017-12-29T10:49:02+01:00</updated>
<published>2017-12-29T10:49:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201217#p201217</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201217#p201217"/>
<title type="html"><![CDATA[Re: brak wyświetlania kursora na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201217#p201217"><![CDATA[
<div class="quotetitle">JarekB napisał(a):</div><div class="quotecontent"><br />Parę dni temu napisałem sobie &quot;funkcję&quot; - mocne słowo<br /><br />stop();                              // wspolne.h zatrzymuje program w XXXX<br /><br /><br />[syntax=c]void stop( void ) {<br />    while ( 1 ) {<br />    }<br />}[/syntax]<br /><br />Wstaw sobie taką funkcję za linijką 146<br />Program się zatrzyma.<br />Może gdzieś dalej w kodzie &quot;przykrywasz&quot; czymś ten kursor i dlatego go nie widać<br /></div><br />Wstawiłem tak jak poradziłeś. Zadziałało i miganie, i wyświetlenie samego kursora. Widzę, że w linii 96 w tym samym miejscu nie usunąłem &quot;przetestowania&quot; kursora, ale usunięcie tych dwóch funkcji nic nie dało. Tak więc wiem już, że sam kursor działa, ale nie mam pojęcia co w programie go może blokować.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18516">dzerwis</a> — 29 gru 2017, o 10:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2017-12-29T10:33:43+01:00</updated>
<published>2017-12-29T10:33:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201215#p201215</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201215#p201215"/>
<title type="html"><![CDATA[Re: brak wyświetlania kursora na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201215#p201215"><![CDATA[
Parę dni temu napisałem sobie &quot;funkcję&quot; - mocne słowo<br /><br />stop();                              // wspolne.h zatrzymuje program w XXXX<br /><br /><br />[syntax=c]void stop( void ) {<br />    while ( 1 ) {<br />    }<br />}[/syntax]<br /><br />Wstaw sobie taką funkcję za linijką 146<br />Program się zatrzyma.<br />Może gdzieś dalej w kodzie &quot;przykrywasz&quot; czymś ten kursor i dlatego go nie widać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 29 gru 2017, o 10:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dzerwis]]></name></author>
<updated>2017-12-29T10:10:12+01:00</updated>
<published>2017-12-29T10:10:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201214#p201214</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201214#p201214"/>
<title type="html"><![CDATA[Re: brak wyświetlania kursora na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201214#p201214"><![CDATA[
<div class="quotetitle">JarekB napisał(a):</div><div class="quotecontent"><br />Hmmm. <br />Może gdy do gotowego projektu dołączałeś biblioteki nie poprawiłeś tej linii w pliku lcd44780.h ?<br /><br />[syntax=c]#define USE_LCD_CURSOR_ON         0    // obsługa włączania/wyłączania kursora[/syntax]<br /></div><br />Niestety sprawdzałem to 10 razy, obie linie razem z BLINK są ustawione na 1.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18516">dzerwis</a> — 29 gru 2017, o 10:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2017-12-29T09:27:05+01:00</updated>
<published>2017-12-29T09:27:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201212#p201212</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201212#p201212"/>
<title type="html"><![CDATA[Re: brak wyświetlania kursora na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201212#p201212"><![CDATA[
Hmmm. <br />Może gdy do gotowego projektu dołączałeś biblioteki nie poprawiłeś tej linii w pliku lcd44780.h ?<br /><br />[syntax=c]#define USE_LCD_CURSOR_ON         0    // obsługa włączania/wyłączania kursora[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 29 gru 2017, o 09:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dzerwis]]></name></author>
<updated>2017-12-28T21:15:51+01:00</updated>
<published>2017-12-28T21:15:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201192#p201192</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201192#p201192"/>
<title type="html"><![CDATA[brak wyświetlania kursora na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19872&amp;p=201192#p201192"><![CDATA[
Cześć wszystkim.<br />Od pewnego czasu krok po kroku programuję sobie zegarek (podstawa dla początkującego) z możliwością ustawiania czasu, daty i budzika. Wszystkie funkcje do tej pory działają oprócz nieszczęsnego wyświetlania kursora. Sam kod jest mocno amatorski i pisany &quot;na kolanie&quot;, więc zrozumiem wszelkie przejawy krytyki na ten temat  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> . Biblioteki skonfigurowane mam prawidłowo, testowałem to na praktycznie pustym programie odpowiedzialnym wyłącznie za wyświetlanie (bądź miganie) kursora co oczywiście działało, po czym tę samą bibliotekę skopiowałem dla pewności do głównego projektu (plik .h i .c), a tam już kursora brak. Całość jest zrealizowana na stykówce, Atmedze 88PA, LCD 2x16, kwarcu zegarkowym 32kHz i na 5 przyciskach tact-switch. Mikroklocek taktuję wewnętrznym zegarem z częstotliwością 1MHz. Linia odpowiedzialna za testowe wyświetlenie kursora to linia 146. Będę wdzięczny za każdą wskazówkę co zrobiłem nie tak <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />volatile uint8_t godzina&#91;6&#93;={0,5,9,5,3,2};//godzina&#91;0&#93; - jednostki sekund, godzina &#91;5&#93; - dziesiatki godzin<br />volatile uint16_t data&#91;3&#93;={28,2,2013};//data&#91;0&#93; - dzien<br />uint8_t budzik&#91;6&#93;;//ten sam format co godzina<br />uint8_t ustawczas&#91;6&#93;;//ustawczas&#91;0&#93; - jednostki sekund, ustawczas&#91;5&#93; - dziesiatki godzin<br />uint16_t ustawdate&#91;3&#93;;//ustawdate&#91;0&#93; - dzien<br />uint16_t czesci_sekundy;<br />uint8_t alarmstate;//0- budzik wylaczony 1- wlaczony<br />volatile uint8_t dnimiesiaca;<br />#define KEY_UP (1&lt;&lt;PC0)<br />#define KEY_DOWN (1&lt;&lt;PC1)<br />#define KEY_LEFT (1&lt;&lt;PC2)<br />#define KEY_RIGHT (1&lt;&lt;PC3)<br />#define KEY_SELECT (1&lt;&lt;PC4)<br />uint8_t keyu_lock,keyd_lock,keyl_lock,keyr_lock,keys_lock; //liczniki do klawiszy<br />uint8_t up,down,left,right,select;//1-wcisniety 0-zwolniony<br />void zegarek();<br />void kalendarz();<br />void alarm();<br />void months();<br />void settime();<br />void setdate();<br />void setalarm();<br />void keypressed();<br />ISR (TIMER2_COMPA_vect) //512 razy na sek<br />{<br /><br />czesci_sekundy++;<br />if (czesci_sekundy==1024)<br />{<br />czesci_sekundy=512;<br />godzina&#91;0&#93;++;<br />if (godzina&#91;0&#93;==10)//przepelnienie jednostek sekund<br />{<br />godzina&#91;0&#93;=0;<br />godzina&#91;1&#93;++;<br />}<br />if (godzina&#91;1&#93;==6)//przepelnienie dziesiatek sekund<br />{<br />godzina&#91;1&#93;=0;<br />godzina&#91;2&#93;++;<br />}<br />if (godzina&#91;2&#93;&gt;=10)//przepelnienie jednostek minut<br />{<br />godzina&#91;2&#93;-=10;<br />godzina&#91;3&#93;++;<br />}<br />if (godzina&#91;3&#93;==6)//przepelnienie dziesiatek minut<br />{<br />godzina&#91;3&#93;=0;<br />godzina&#91;4&#93;++;<br />}<br />if (godzina&#91;4&#93;&gt;=10)//przepelnienie jednostek godzin<br />{<br />godzina&#91;4&#93;-=10;<br />godzina&#91;5&#93;++;<br />}<br />if (godzina&#91;5&#93;==2 &amp;&amp; godzina&#91;4&#93;==4)//przepelnienie 24h<br />{<br />godzina&#91;4&#93;=0;<br />godzina&#91;5&#93;=0;<br />data&#91;0&#93;++;<br />}<br />if(data&#91;0&#93;&gt;dnimiesiaca) //przepelnienie dni miesiaca<br />{<br />data&#91;0&#93;=1;<br />data&#91;1&#93;++;<br />}<br />if(data&#91;1&#93;&gt;12) //przepelnienie miesiecy roku<br />{<br />data&#91;1&#93;=1;<br />data&#91;2&#93;++;<br />}<br />}<br />}<br /><br /><br />int main(void)<br />{PORTC|=KEY_UP|KEY_DOWN|KEY_LEFT|KEY_RIGHT|KEY_SELECT; //sprzetowe rezystory<br />lcd_init(); // inicjalizacja wyswietlacza zawsze konieczna<br />_delay_ms(10);<br />ASSR=(1&lt;&lt;AS2);//t2 - praca asynchroniczna<br />TCCR2A=(1&lt;&lt;WGM21); //ctc - w rejestrze A!!!<br />TCCR2B=(1&lt;&lt;CS21);// preskaler 8 - w rejestrze B!!!<br />OCR2A=7; //porownanie preskalera - w rejestrze A!!!<br />while (ASSR&amp;((1&lt;&lt;TCN2UB)|(1&lt;&lt;OCR2AUB)|(1&lt;&lt;TCR2BUB)));//czekamy na zapisanie zmian<br />TIMSK2=(1&lt;&lt;OCIE2A); //zezwolenie na przerwania<br />sei();//globalne odblokowanie przerwan<br /><br />    while (1)<br />    {<br />    lcd_locate(0,9);<br />    lcd_blink_on();<br />    keypressed();<br />    zegarek();<br />    kalendarz();<br />    alarm();<br />    if(up)settime();<br />    if(down)setdate();<br />    if(right)setalarm();<br />    if(select)//wylacz alarm<br />    {<br />    alarmstate=0;//dezaktywuje alarm ktory trzeba ustawic od nowa<br />    lcd_locate(0,10); lcd_char(' ');//czyszczenie wykrzyknika<br />    lcd_locate(1,11); lcd_str(&quot;     &quot;);//czyszczenie napisu alarm<br />    }<br /><br />    }<br /><br />}<br /><br />void months()<br />{<br />if ((data&#91;1&#93;==1)||(data&#91;1&#93;==3)||(data&#91;1&#93;==5)||(data&#91;1&#93;==7)||(data&#91;1&#93;==8)||(data&#91;1&#93;==10)||(data&#91;1&#93;==12))<br />{<br />dnimiesiaca=31;<br />}<br />if ((data&#91;1&#93;==4)||(data&#91;1&#93;==6)||(data&#91;1&#93;==9)||(data&#91;1&#93;==11))<br />{<br />dnimiesiaca=30;<br />}<br />if (data&#91;1&#93;==2)<br />{<br />dnimiesiaca=28;<br />if((data&#91;2&#93;%4==0 &amp;&amp; data&#91;2&#93;%100!=0) || data&#91;2&#93;%400==0)//rok przestepny<br />{<br />dnimiesiaca=29;<br />}<br /><br />}<br />}<br />void zegarek()<br />{<br />lcd_locate(0,0); lcd_int(godzina&#91;5&#93;);<br />lcd_locate(0,1); lcd_int(godzina&#91;4&#93;);<br />lcd_locate(0,2); lcd_char(':');<br />lcd_locate(0,3); lcd_int(godzina&#91;3&#93;);<br />lcd_locate(0,4); lcd_int(godzina&#91;2&#93;);<br />lcd_locate(0,5); lcd_char(':');<br />lcd_locate(0,6); lcd_int(godzina&#91;1&#93;);<br />lcd_locate(0,7); lcd_int(godzina&#91;0&#93;);<br />lcd_locate(0,9); lcd_cursor_on(); //&lt;--------------- tutaj chcialbym przykladowo wyswietlic kursor<br />}<br />void kalendarz()<br />{<br />months();<br />if(data&#91;0&#93;&lt;10)<br />{<br />    lcd_locate(1,0); lcd_int(0);<br />    lcd_locate(1,1); lcd_int(data&#91;0&#93;);<br />}<br />else<br />    {<br />    lcd_locate(1,0); lcd_int(data&#91;0&#93;);<br />    }<br />    lcd_locate(1,2); lcd_char('.');<br />if(data&#91;1&#93;&lt;10)<br />    {<br />     lcd_locate(1,3); lcd_int(0);<br />     lcd_locate(1,4); lcd_int(data&#91;1&#93;);<br />    }<br />else<br />    {<br />    lcd_locate(1,3); lcd_int(data&#91;1&#93;);<br />    }<br />   lcd_locate(1,5); lcd_char('.');<br />    lcd_locate(1,6);<br />    lcd_int(data&#91;2&#93;);<br />}<br /><br />void alarm()<br />{<br />lcd_locate(0,11); lcd_int(budzik&#91;5&#93;);<br />lcd_locate(0,12); lcd_int(budzik&#91;4&#93;);<br />lcd_locate(0,13); lcd_char(':');<br />lcd_locate(0,14); lcd_int(budzik&#91;3&#93;);<br />lcd_locate(0,15); lcd_int(budzik&#91;2&#93;);<br />if(alarmstate)//jesli budzik wlaczony<br />{<br />if(godzina&#91;5&#93;==budzik&#91;5&#93;&amp;&amp;godzina&#91;4&#93;==budzik&#91;4&#93;&amp;&amp;godzina&#91;3&#93;==budzik&#91;3&#93;&amp;&amp;godzina&#91;2&#93;==budzik&#91;2&#93;&amp;&amp;godzina&#91;1&#93;==budzik&#91;1&#93;&amp;&amp;godzina&#91;0&#93;==budzik&#91;0&#93;)<br />{//jesli godzina bedzie rowna tej ustawionej w budziku<br />lcd_locate(1,11); lcd_str(&quot;alarm&quot;);<br />}<br />}<br /><br />}<br /><br />void setalarm()<br />{<br />uint8_t timepos=5;//od lewej do prawej ustawiamy pierwsze godziny czyli budzik&#91;5&#93;<br />alarmstate=0;//wylaczenie mozliwosci aktywacji budzika podczas ustawiania alarmu<br />while (1)<br />{<br />zegarek();<br />kalendarz();<br />alarm();<br />keypressed();<br />if(up)budzik&#91;timepos&#93;++;//zwiekszenie wartosci elementu tablicy<br />if(down)budzik&#91;timepos&#93;--;//zmniejszenie wartosci elementu tablicy<br />if(right)timepos--;<br />if(left)<br />{<br />timepos++;<br />if(timepos&gt;5)timepos=5;//zablokowanie mozliwosci przejscia do nieistniejacych elementow tablicy<br />}<br />if (budzik&#91;2&#93;&gt;9)budzik&#91;2&#93;=0;<br />if (budzik&#91;3&#93;&gt;5)budzik&#91;3&#93;=0;<br />if (budzik&#91;5&#93;==2&amp;&amp;budzik&#91;4&#93;&gt;3)budzik&#91;4&#93;=0;<br />if (budzik&#91;4&#93;&gt;9)budzik&#91;4&#93;=0;<br />if (budzik&#91;5&#93;&gt;2)budzik&#91;5&#93;=0;<br />if (timepos==1)//po ustawieniu jednostek minut alarmu wcisniecie key right spowoduje aktywacje alarmu<br />{<br />alarmstate=1;<br />lcd_locate(0,10);<br />lcd_char('!');<br />break;<br />}<br />if(select)//porzucenie zmian<br />{<br />alarmstate=0;<br />lcd_locate(0,10);<br />lcd_char(' ');<br />break;<br />}<br />}<br />}<br /><br />void settime()<br />{<br />uint8_t timepos=5;//indeksowanie analogiczne do budzika<br />ustawczas&#91;0&#93;=0; ustawczas&#91;1&#93;=0;//zerowanie sekund podczas ustawiania<br />ustawczas&#91;2&#93;=godzina&#91;2&#93;; ustawczas&#91;3&#93;=godzina&#91;3&#93;;<br />ustawczas&#91;4&#93;=godzina&#91;4&#93;; ustawczas&#91;5&#93;=godzina&#91;5&#93;;//ustawianie czasu od momentu poprzedniego stanu<br />while (1)<br />{<br />kalendarz();<br />alarm();<br />keypressed();<br />if(up)ustawczas&#91;timepos&#93;++;<br />if(down)ustawczas&#91;timepos&#93;--;<br />if(right)timepos--;<br />if(left)<br />{<br />timepos++;<br />if(timepos&gt;5)timepos=5;<br />}<br />if (ustawczas&#91;2&#93;&gt;9)ustawczas&#91;2&#93;=0;<br />if (ustawczas&#91;3&#93;&gt;5)ustawczas&#91;3&#93;=0;<br />if (ustawczas&#91;5&#93;==2&amp;&amp;ustawczas&#91;4&#93;&gt;3)ustawczas&#91;4&#93;=0;<br />if (ustawczas&#91;4&#93;&gt;9)ustawczas&#91;4&#93;=0;<br />if (ustawczas&#91;5&#93;&gt;2)ustawczas&#91;5&#93;=0;<br /><br />if(select)break;<br />if(timepos==1)<br />{<br />godzina&#91;5&#93;=ustawczas&#91;5&#93;;godzina&#91;4&#93;=ustawczas&#91;4&#93;;godzina&#91;3&#93;=ustawczas&#91;3&#93;;<br />godzina&#91;2&#93;=ustawczas&#91;2&#93;;godzina&#91;1&#93;=ustawczas&#91;1&#93;;godzina&#91;0&#93;=ustawczas&#91;0&#93;;<br />break;<br />}<br />lcd_locate(0,0); lcd_int(ustawczas&#91;5&#93;);<br />lcd_locate(0,1); lcd_int(ustawczas&#91;4&#93;);<br />lcd_locate(0,2); lcd_char(':');<br />lcd_locate(0,3); lcd_int(ustawczas&#91;3&#93;);<br />lcd_locate(0,4); lcd_int(ustawczas&#91;2&#93;);<br />lcd_locate(0,5); lcd_char(':');<br />lcd_locate(0,6); lcd_int(ustawczas&#91;1&#93;);<br />lcd_locate(0,7); lcd_int(ustawczas&#91;0&#93;);<br />}<br />}<br /><br />void setdate()<br />{<br />uint16_t datapos=0;//data indeksowana odwrotnie do godziny<br />ustawdate&#91;0&#93;=data&#91;0&#93;;<br />ustawdate&#91;1&#93;=data&#91;1&#93;;<br />ustawdate&#91;2&#93;=data&#91;2&#93;;//ustawianie daty od poprzedniego stanu<br />while (1)<br />{<br />zegarek();<br />alarm();<br />keypressed();<br />if(up)ustawdate&#91;datapos&#93;++;<br />if(down)ustawdate&#91;datapos&#93;--;<br />if(left)<br />{<br />datapos--;<br />if(datapos&lt;0)datapos=0;<br />}<br />if(right)datapos++;<br />if (ustawdate&#91;0&#93;&gt;31)ustawdate&#91;0&#93;=0;<br />if (ustawdate&#91;1&#93;&gt;12)ustawdate&#91;1&#93;=0;<br /><br /><br />if(select)break;//odrzucenie zmian, powrot do poprzedniej daty<br />if(datapos==3)//po przejsciu w prawo ustawiajac date zapis zmian<br />{<br />data&#91;2&#93;=ustawdate&#91;2&#93;;data&#91;1&#93;=ustawdate&#91;1&#93;;data&#91;0&#93;=ustawdate&#91;0&#93;;<br />break;<br />}<br />if(ustawdate&#91;0&#93;&lt;10)<br />{<br />lcd_locate(1,0); lcd_int(0);<br />lcd_locate(1,1); lcd_int(ustawdate&#91;0&#93;);<br />}<br />else<br />{<br />lcd_locate(1,0); lcd_int(ustawdate&#91;0&#93;);<br />}<br />lcd_locate(1,2); lcd_char('.');<br />if(ustawdate&#91;1&#93;&lt;10)<br />{<br />lcd_locate(1,3); lcd_int(0);<br />lcd_locate(1,4); lcd_int(ustawdate&#91;1&#93;);<br />}<br />else<br />{<br /> lcd_locate(1,3); lcd_int(ustawdate&#91;1&#93;);<br />}<br />lcd_locate(1,5); lcd_char('.');<br />lcd_locate(1,6);<br />lcd_int(ustawdate&#91;2&#93;);<br />}<br />}<br />void keypressed ()<br />{<br /><br /> if( !keys_lock &amp;&amp; !(PINC &amp; KEY_SELECT ) ){<br /> keys_lock=245;//optymalna wartosc pod taka ilosc kodu<br /> select=1;}<br /> else if( keys_lock &amp;&amp; (PINC &amp; KEY_SELECT ) ) keys_lock++;<br /> else select=0;<br /><br /> if( !keyu_lock &amp;&amp; !(PINC &amp; KEY_UP ) ){<br />  keyu_lock=245;<br />  up=1;}<br /> else if( keyu_lock &amp;&amp; (PINC &amp; KEY_UP ) ) keyu_lock++;<br /> else up=0;<br /><br /> if( !keyd_lock &amp;&amp; !(PINC &amp; KEY_DOWN ) ){<br />  keyd_lock=245;<br />  down=1;}<br /> else if( keyd_lock &amp;&amp; (PINC &amp; KEY_DOWN ) ) keyd_lock++;<br /> else down=0;<br /><br /> if( !keyl_lock &amp;&amp; !(PINC &amp; KEY_LEFT ) ){<br />  keyl_lock=245;<br />  left=1;}<br /> else if( keyl_lock &amp;&amp; (PINC &amp; KEY_LEFT ) ) keyl_lock++;<br /> else left=0;<br /><br /> if( !keyr_lock &amp;&amp; !(PINC &amp; KEY_RIGHT ) ){<br />  keyr_lock=245;<br />  right=1;}<br /> else if( keyr_lock &amp;&amp; (PINC &amp; KEY_RIGHT ) ) keyr_lock++;<br /> else right=0;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18516">dzerwis</a> — 28 gru 2017, o 21:15</p><hr />
]]></content>
</entry>
</feed>