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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-05-01T15:58:10+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11559&amp;mode</id>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-05-01T15:58:10+01:00</updated>
<published>2015-05-01T15:58:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127976#p127976</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127976#p127976"/>
<title type="html"><![CDATA[Re: Biblioteka IR_UNI wykorzystanie poza zdarzeniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127976#p127976"><![CDATA[
Jeden &quot;if&quot;, jedna flaga i po problemie. Dzięki panu podpowiedzi mam menu reagujące na muśnięcie klawisza i nie mielone w pętli głównej tylko umieszczone tam gdzie trzeba:<br /><br />[syntax=c]static uint8_t fl=1;      //jednorazowe kasowanie kodu klawisza enter<br />if(fl){address = 0xff;   //przy wejściu do nastaw menu<br />     command = 0xff;<br />                        fl=0;<br />}<br /><br />if (!key_time &amp;&amp; command == kl_enter) { //ENTER-wyjście z funkcji wywoł. z menu<br /><br />menu_flag = 0;                          //kasowanie flag<br />flag_cls = 0;<br />                    fl=1;<br />lcd_cls();<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 1 maja 2015, o 15:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-05-01T15:17:27+01:00</updated>
<published>2015-05-01T15:17:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127973#p127973</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127973#p127973"/>
<title type="html"><![CDATA[Re: Biblioteka IR_UNI wykorzystanie poza zdarzeniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127973#p127973"><![CDATA[
<div class="quotetitle">Rafał555 napisał(a):</div><div class="quotecontent"><br />Oj, same problemy.<br /></div><br />Żadne problemy - to samo życie programisty <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=54">mirekk36</a> — 1 maja 2015, o 15:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-05-01T14:02:27+01:00</updated>
<published>2015-05-01T14:02:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127961#p127961</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127961#p127961"/>
<title type="html"><![CDATA[Re: Biblioteka IR_UNI wykorzystanie poza zdarzeniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127961#p127961"><![CDATA[
No właśnie tak chciałem. Program opieram na menu kolegi Lukasz89.<br />Funkcję nawigacyjną wrzuciłem do funkcji wywoływanej ze zdarzenia IR i działa ładnie.<br />Natomiast ta funkcja poniżej działa mi tylko w pętli głównej, ale tak trochę kulawo, nie zawsze klawisz pilota zadziała.<br /> Jak ją wrzucę do funcji zdarzeniowej IR to się nie uruchamia.<br /><br /><br />[syntax=c]void f_menu(void){<br />if (pozycja == menu_flag) {<br />            static menu *flag_cls = 0;<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(&quot;DD&quot;);<br />lcd_locate(1, 0);<br />data_show(&amp;datetime);<br />if (!key_time &amp;&amp; command == gora) {<br />if (++datetime.day &gt; 31)<br />datetime.day = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (!key_time &amp;&amp; command == dol) {<br />if (--datetime.day &lt; 1)<br />datetime.day = 31;<br />zegarek_zapis(&amp;datetime);<br />}<br />}<br />//---------Miesiąc-----------------<br />if (menu_flag == &amp;submenu12) {<br />flag_cls = &amp;submenu12;<br />lcd_locate(0, 3);<br />lcd_str(&quot;MM&quot;);<br />lcd_locate(1, 0);<br />data_show(&amp;datetime);<br />if (!key_time &amp;&amp; command == gora) {<br />if (++datetime.month &gt; 12)<br />datetime.month = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (!key_time &amp;&amp; command == dol) {<br />if (--datetime.month &lt; 1)<br />datetime.month = 12;<br />zegarek_zapis(&amp;datetime);<br />}<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 />data_show(&amp;datetime);<br />if (!key_time &amp;&amp; command == gora) {<br />if (++datetime.year &gt; 99)<br />datetime.year = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (!key_time &amp;&amp; command == dol) {<br />if (--datetime.year == 255)<br />datetime.year = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />}<br />//-------------Dzień tygodnia---------------<br />if (menu_flag == &amp;submenu14) {<br />flag_cls = &amp;submenu14;<br />lcd_locate(0, 12);<br />lcd_str(&quot;DAY&quot;);<br /><br />lcd_locate(1, 0);<br />data_show(&amp;datetime);<br />if (!key_time &amp;&amp; command == gora) {<br />if (++datetime.dayofwek &gt; 7)<br />datetime.dayofwek = 1;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (!key_time &amp;&amp; command == dol) {<br />if (--datetime.dayofwek &lt; 1)<br />datetime.dayofwek = 7;<br />zegarek_zapis(&amp;datetime);<br />}<br />}<br />//    ----Godzina--------------<br />if (menu_flag == &amp;submenu21) {<br />flag_cls = &amp;submenu21;<br />lcd_locate(0, 0);<br />lcd_str(&quot;hh&quot;);<br />lcd_locate(1, 0);<br />zegarek_show(&amp;datetime);<br />if (!key_time &amp;&amp; command == gora) {<br />if (++datetime.hh &gt; 23)<br />datetime.hh = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (!key_time &amp;&amp; command == dol) {<br />if (datetime.hh-- == 0)<br />datetime.hh = 23;<br />zegarek_zapis(&amp;datetime);<br />}<br />}<br />//-------Minuty--------------<br />if (menu_flag == &amp;submenu22) {<br />flag_cls = &amp;submenu22;<br />lcd_locate(0, 3);<br />lcd_str(&quot;mm&quot;);<br />lcd_locate(1, 0);<br />zegarek_show(&amp;datetime);<br />if (!key_time &amp;&amp; command == gora) {<br />if (++datetime.mm &gt; 59)<br />datetime.mm = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (!key_time &amp;&amp; command == dol) {<br />if (datetime.mm-- == 0)<br />datetime.mm = 59;<br />  zegarek_zapis(&amp;datetime);<br />}<br />}<br />//-----------Sekundy---------<br />if (menu_flag == &amp;submenu23) {<br />flag_cls = &amp;submenu23;<br />lcd_locate(0, 6);<br />lcd_str(&quot;ss&quot;);<br />lcd_locate(1, 0);<br />zegarek_show(&amp;datetime);<br />if (!key_time &amp;&amp; command == gora) {<br />datetime.ss = 0;<br />zegarek_zapis(&amp;datetime);<br />}<br />if (!key_time &amp;&amp; command == dol) {<br />datetime.ss = 0;<br />                        zegarek_zapis(&amp;datetime);<br />}<br />}<br />//--- Ustawianie godzin zał/wył. alarmu czujki1<br />static uint8_t x=1;<br />if (menu_flag == &amp;submenu31){<br /><br />flag_cls = &amp;submenu31;<br />lcd_locate(0,0);lcd_str(&quot;godzina zal.&quot;);<br />if (!key_time &amp;&amp; command &lt; 10) {<br /><br />//static uint16_t a,b,c,d;<br />switch(x){<br />case 1: czujka.alarmON =  command*1000; x=2; break;<br />case 2: czujka.alarmON += command*100 ; x=3; break;<br />case 3: czujka.alarmON += command*10  ; x=4; break;<br />case 4: czujka.alarmON += command     ; x=1; break;<br />//default: x=1;<br />}}<br />lcd_locate(1,0);<br />lcd_int(czujka.alarmON);<br />                        lcd_str(&quot;  &quot;);<br />                        lcd_int(x);<br />}<br />if (menu_flag == &amp;submenu32){<br />flag_cls = &amp;submenu32;<br />lcd_locate(0,0);lcd_str(&quot;godzina wyl.&quot;);<br />if (!key_time &amp;&amp; command &lt; 10) {<br /><br />switch(x){<br />case 1: czujka.alarmOFF =  command*1000 ;x=2; break;<br />case 2: czujka.alarmOFF += command*100  ;x=3; break;<br />case 3: czujka.alarmOFF += command*10   ;x=4; break;<br />case 4: czujka.alarmOFF += command      ;x=1; break;<br />//default: x=1;<br />}<br /> }<br />lcd_locate(1,0);<br />lcd_int(czujka.alarmOFF );<br />lcd_str(&quot;  &quot;);<br />lcd_int(x);      //kontrolne wyświetlanie aktualnej pozycji wpisywanej liczby<br />}<br /><br /><br /><br /><br />if (!key_time &amp;&amp; command == prawo){      // szybkie przechodzenie do nast. nastawy<br />pozycja = pozycja-&gt;next; enter(); }<br /><br />if (!key_time &amp;&amp; command == kl_enter) { //ENTER-wyjście z funkcji wywoł. z menu<br /><br />menu_flag = 0;                          //kasowanie flag<br />flag_cls = 0;<br />//  address = 0xff;<br />//command = 0xff;<br />lcd_cls();<br />}<br />}<br />}[/syntax]<br /><br /><br />[syntax=c]void ir_parse(uint8_t address, uint8_t command, uint8_t key_time) {<br />//f.wywoływana przez zdarzenie pilota<br />if (!key_time) {<br />TimerBuz = 3;<br /><br />menu_navi();           //sterowanie menu<br />f_menu();<br /><br />if (command == red) {<br />uart_puts(&quot;S1=auto\r&quot;);<br /><br />}<br /><br /><br />if (command == wyl) { // ręczne wł/wył podswietlenia<br />stan_lcd ^= 1;<br />}<br /><br />if (command == 14)<br />ctr_al ^= 1;[/syntax]<br /><br /> Ustawianie czasu i daty mam za pomocą klawiszy góra/dół i nawet nie zwróciłem uwagi, że się przycina coś.<br />Natomiast przy ustawianiu alarmu klawiszami numerycznymi taka zacinka uniemożliwia poprawnego wpisania danych, bo każde naciśnięcie klawisza powinno zmienić pozycję wpisywanej cyfry.<br />Dlatego pomocniczo wyświetlam sobie index &quot;x&quot;, żeby wiedzieć na której pozycji jestem. Nieraz 3 razy trzeba nacisnąć klawisz, żeby zmienić pozycję.<br /> <br /> No i chyba już wiem dlaczego funkcja f_menu() &quot;nie działa&quot; w zdarzeniu IR. Po prostu tym samym klawiszem &quot;enter&quot; wchodzę do funkcji i tym samym ją opuszczam. Oj, same problemy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 1 maja 2015, o 14:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-05-01T11:59:09+01:00</updated>
<published>2015-05-01T11:59:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127946#p127946</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127946#p127946"/>
<title type="html"><![CDATA[Re: Biblioteka IR_UNI wykorzystanie poza zdarzeniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127946#p127946"><![CDATA[
Ależ po co takie kombinacje ? Podejrzewam, że coś bardzo dziwnie robisz .... tak na szybko - wywołuj zdarzenie w swojej funkcji MENU albo cokolwiek innego - ale co tu można podpowiedzieć jeśli nie wiadomo co robisz bo ani skrawka kodu nie pokazujesz <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 maja 2015, o 11:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-05-01T11:52:59+01:00</updated>
<published>2015-05-01T11:52:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127943#p127943</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127943#p127943"/>
<title type="html"><![CDATA[Biblioteka IR_UNI wykorzystanie poza zdarzeniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11559&amp;p=127943#p127943"><![CDATA[
Witam po raz drugi dzisiaj <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Mam pytanie do osób znających bibliotekę do obsługi pilota z GB.<br /> Mianowicie mam potrzebę w pisanym teraz programie użyć zmiennej command poza funkcją wywoływaną w zdarzeniu IR_Event. Jak wiadomo po wciśnięciu klawisza w zdarzeniu jest wywołana własna funkcja, a potem następuje kasowanie zmiennych command, oraz adress.<br /> Ja potrzebuję wykorzystać zmienną command w funkcji wywołanej z menu i wpisywanie danych z klawiatury numerycznej pilota. Czasem się to uda jednak najczęściej zdarzenie pilota zdąży mi wykasować zmienną command. Ma ktoś pomysł jak to zgrabnie zrobić, żeby nie ingerować w bibliotekę? Ja myślałem, żeby powołać zmienną do której skopiuję wartość zmiennej command i później ręcznie ją kasować.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 1 maja 2015, o 11:52</p><hr />
]]></content>
</entry>
</feed>