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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-09-18T20:22:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=23328&amp;mode</id>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2020-09-18T20:22:26+01:00</updated>
<published>2020-09-18T20:22:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=229033#p229033</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=229033#p229033"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=229033#p229033"><![CDATA[
[syntax=c]/* Program poglądowy, pokazujący w jaki sposób za pomocą czterech<br /> * klawiszy zmieniać wartości kilkudziesięciu zmiennych. W przykładzie<br /> * zostało użytych 8 programów, ale można więcej w zależności<br /> * od posiadanych zasobów pamięci RAM. Program pisany na szybko.<br /> * Nie jest to kod najwyższych lotów, gotowy do zastosowania u Ciebie<br /> * i spełniający Twoje oczekiwania, ale jeśli go zrozumiesz,<br /> * to łatwo go dostosujesz do swoich potrzeb.<br /> */ <br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;stddef.h&gt;<br /><br />#define MAX_PROGRAMS        8<br />#define MAX_OUTPUTS         8<br />#define MAX_VALUES          7 /* program zawiera 7 różnych wartości<br />                                 do modyfikacji */<br />#define PROG_ADDR(ID)       &amp;progs&#91;ID&#93;.output_id<br />#define VAL_OFFSET(ID)      val_props&#91;ID&#93;.offset<br /><br />/* Załóżmy, że kompletny zestaw danych potrzebnych do wysterowania pinu<br /> * na określony przedział czasu to:<br /> *      - identyfikator wyjścia<br /> *      - czas włączenia pinu<br /> *      - czas wyłączenia pinu<br /> * Nazwijmy ten zastaw &quot;programem&quot; (Program_t)<br /> * Na czas składają się trzy wartości (przy założeniu, że realizujemy<br /> * sterowanie dobowe):<br /> *      - godzina<br /> *      - minuta<br /> *      - sekunda<br /> * Stwórzmy więc najpierw strukturę &quot;czas&quot; (Time_t)                     */<br />typedef struct {<br />        int8_t h;<br />        int8_t m;<br />        int8_t s;<br />} Time_t;<br /><br />/* Teraz zdefiniujemy strukturę Program_t                               */<br />typedef struct {<br />    int8_t output_id;<br />    Time_t time_on;<br />    Time_t time_off;<br />} Program_t;<br /><br />/* i stworzymy zmienną tablicową, zawierającą zmienne typu Program_t    */<br />Program_t progs&#91;MAX_PROGRAMS&#93;;<br /><br />/* W tej tablicy zawarte będą ustawiane przez nas wartości              */<br />/* Ze względu na to, że tymi samymi klawiszami ustawiać będziemy<br /> * różne typy wartości, potrzebujemy także nieco informacji o nich,<br /> * czyli ich położenie wewnątrz struktury (offset) i limity wartości    */<br /><br />/* Identyfikatory wartości w obrębie struktury                          */<br />typedef enum {<br />    OUTPUT_ID,<br />    TIME_ON_H,<br />    TIME_ON_M,<br />    TIME_ON_S,<br />    TIME_OFF_H,<br />    TIME_OFF_M,<br />    TIME_OFF_S,<br />    MAX_PROPETRTIES<br />} properties;<br /><br />/* Definiujemy strukturę z właściwościami wartości                      */<br />typedef struct {<br />    int16_t offset;<br />    int8_t limit;<br />} val_properties_t;<br /><br />/* Tworzymy tablicę z właściwościami wartości                           */<br />const __flash val_properties_t val_props&#91;MAX_PROPETRTIES&#93; = {<br />        &#91;OUTPUT_ID&#93;     = { offsetof(Program_t, output_id), MAX_OUTPUTS }  ,<br />        &#91;TIME_ON_H&#93;     = { offsetof(Program_t, time_on.h), 24 }  ,<br />        &#91;TIME_ON_M&#93;     = { offsetof(Program_t, time_on.m), 60 }  ,<br />        &#91;TIME_ON_S&#93;     = { offsetof(Program_t, time_on.s), 60 }  ,<br />        &#91;TIME_OFF_H&#93;    = { offsetof(Program_t, time_off.h), 24 }  ,<br />        &#91;TIME_OFF_M&#93;    = { offsetof(Program_t, time_off.m), 60 }  ,<br />        &#91;TIME_OFF_S&#93;    = { offsetof(Program_t, time_off.s), 60 }<br />};<br /><br />/* Ta zmienna posłuży jako identyfikator aktualnie modyfikowanego<br />programu                                                                */<br />int8_t mod_prog_id = 0;<br /><br />/* Musimy też posiadać identyfikator aktualnie modyfikowanej<br />wartości (w obrębie struktury Program_t)                                 */<br />int8_t mod_val_id = 0;<br /><br />/* prototyp funkcji czytającej klawiaturę                               */<br />uint8_t read_key();<br /><br />/* funkcja uaktualniająca wskaźnik na edytowaną wartość                 */<br />static inline int8_t * update_val_ptr() {<br />    return PROG_ADDR(mod_prog_id) + VAL_OFFSET(mod_val_id);<br />}<br /><br />int main(void)<br />{<br />    /* kod wciśniętego klawisza                                         */<br />    uint8_t key_code;<br />    <br />    /* no i oczywiście wskaźnik na aktualnie edytowaną wartość          */<br />    int8_t * mod_val_ptr = update_val_ptr();<br />    <br />    while (1) <br />    {<br />        // hipotetyczna funkcja odczytująca stan klawiatury i zwracająca<br />        // kod wciśniętego klawisza<br />        key_code = read_key();<br />        <br />        switch (key_code) {<br />            case 21:    /* klawisz zmieniający numer programu           */<br />                mod_prog_id++;<br />                if ( mod_prog_id &gt;= MAX_PROGRAMS ) mod_prog_id = 0;<br />                mod_val_id = OUTPUT_ID; // opcjonalnie dowolny<br />                                        // identyfikator wartości<br />                /* uaktualnienie wskaźnika na modyfikowaną wartość      */<br />                mod_val_ptr = update_val_ptr();<br />                /* teraz aktualizacja informacji na wyświetlaczu<br />                należałoby na podstawie zmiennej mod_prog_id<br />                wyświetlić numer programu, na podstawie mod_val_id<br />                nazwę wartości, czyli np. &quot;Numer wyjścia&quot;<br />                lub &quot;Wyłączenie - minuty&quot; itp. a także, przy pomocy<br />                wskaźnika mod_val_ptr wyświetlić edytowaną wartość      */<br />                break;<br />            case 22:    /* klawisz wybierający aktualnie modyfikowaną<br />                        wartość w obrębie programu                      */<br />                mod_val_id++;<br />                if ( mod_val_id &gt;= MAX_VALUES ) mod_val_id = 0;<br />                /* uaktualnienie wskaźnika na modyfikowaną wartość      */<br />                mod_val_ptr = update_val_ptr();<br />                /* teraz aktualizacja informacji na wyświetlaczu<br />                należałoby na podstawie mod_val_id<br />                nazwę wartości, czyli np. &quot;Numer wyjścia&quot;<br />                lub &quot;Wyłączenie - minuty&quot; itp. a także, przy pomocy<br />                wskaźnika mod_val_ptr wyświetlić edytowaną wartość      */<br />                break;<br />            case 23:    /* klawisz zwiększający edytowaną wartość o 1   */<br />                (*mod_val_ptr)++;<br />                if ( *mod_val_ptr &gt;= val_props&#91;mod_val_id&#93;.limit)<br />                    *mod_val_ptr = 0;<br />                /* teraz aktualizacja informacji na wyświetlaczu<br />                należałoby przy pomocy wskaźnika mod_val_ptr<br />                zaktualizować edytowaną wartość                         */<br />                break;<br />            case 24:    /* klawisz zmniejszający edytowaną wartość o 1  */<br />                (*mod_val_ptr)--;<br />                if ( *mod_val_ptr &lt; 0)<br />                    *mod_val_ptr = val_props&#91;mod_val_id&#93;.limit - 1;<br />                /* teraz aktualizacja informacji na wyświetlaczu<br />                należałoby przy pomocy wskaźnika mod_val_ptr<br />                zaktualizować edytowaną wartość                         */<br />                break;<br />            default:<br />                break;<br />        }<br />    }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 18 wrz 2020, o 20:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-09-15T19:17:29+01:00</updated>
<published>2020-09-15T19:17:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228992#p228992</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228992#p228992"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228992#p228992"><![CDATA[
Pozatym wskaźnik na zmienna, to nic innego jak przetrzymanie jej adresu, ale ten adres możesz zawsze zmienić (jeśli nie jest const ) i wskazywać wskaźnikiem na adres innej zmiennej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 15 wrz 2020, o 19:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-09-15T19:14:00+01:00</updated>
<published>2020-09-15T19:14:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228991#p228991</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228991#p228991"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228991#p228991"><![CDATA[
Zmienne które przetrzymują ci dane czasu, wyjść i innych itp itd co tam masz musisz i tak posiadać bo to twoje dane obsługiwane w kodzie, jak sprawdzenia czasu co włączyć co wyłączyć itp, ale jak je nastawiasz to nie potrzebujesz tysiąca zmiennych do ich nastawienia, funkcja ma nastawić parametry wymagane do przechowywania parametrów i sprawdzenia zakresów nastaw i zapisanie, tylko na potrzeby menu, patrz na to jako uniwersalne rozwiązanie dla wielu zadań z tej samej kategorii. <br /><br />Wydaje mi się że zbyt globalnie patrzysz na program, nie dzielisz go sobie na sekcje co masz zrobić i odpalać krok po kroku, tysiąca lini kodu nie unikniesz, no chyba że to tylko mryganie diodą.<br /><br />Popatrz na biblioteki Mirka jaki ogrom &quot;treści&quot;, pisania tez nie mało, ale ile trzeba poświęcić czasu przy kompie i nie tylko, bo napewno jak ma jakis twardy orzech to nie siada bezmyślnie i pisze miliony lini, tylko najpierw myśli a potem robi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 15 wrz 2020, o 19:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2020-09-15T18:16:28+01:00</updated>
<published>2020-09-15T18:16:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228990#p228990</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228990#p228990"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228990#p228990"><![CDATA[
<div class="quotetitle">Szofer napisał(a):</div><div class="quotecontent"><br />Masz 4 zmienne do zmiany hh, mm, ss, wyj<br /><br />case 1:<br /><br />wsk = &amp; hh;<br />wsk1 = &amp; mm;<br />wsk2 = &amp; ss;<br />wsk3 = &amp; wyj;<br /><br />funkcja(*wsk, *wsk1, *wsk2, *wsk3) ;<br /><br />break<br /></div><br />Tak te 4 zmienne obsługują mi czasy włączenia wyjścia nr1<br />Następnie potrzebny jest drugi taki kodżik dla wyjścia nr1 <br />ale ustawienia czasów wyłączania <br />i takich wyjść mam 8 i każde niezależnie działające<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 15 wrz 2020, o 18:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-09-15T17:43:22+01:00</updated>
<published>2020-09-15T17:43:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228989#p228989</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228989#p228989"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228989#p228989"><![CDATA[
A poco, no Poco tyle wskaźników? Poco?<br />Masz 4 zmienne do zmiany hh, mm, ss, wyj<br /><br />case 1:<br /><br />wsk = &amp; hh;<br />wsk1 = &amp; mm;<br />wsk2 = &amp; ss;<br />wsk3 = &amp; wyj;<br /><br />funkcja(*wsk, *wsk1, *wsk2, *wsk3) ;<br /><br />break<br /><br />Pokombinuj tak.<br /><br />Pisane z głowy mogłem babola zrobić w zapisie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 15 wrz 2020, o 17:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2020-09-15T17:25:44+01:00</updated>
<published>2020-09-15T17:25:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228988#p228988</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228988#p228988"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228988#p228988"><![CDATA[
To musiałbym zrobić  wskażniki do każdej zmiennej <br />to mam 64 zmienne potem do tych zmiennych 64 wskażniki<br />Ale sposób wpisywania wartości do tych wskażników<br />zostaje bez zmian <br /><br />Czyli MASŁO MAŚLANE nie da rady uprościć tego menu<br />jedynie co mogę zrobić to to co Mirek napisał<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />miki53 napisał(a):<br />  lcd_cls();<br />  lcd_locate(0,6);<br /><br /><br />Sparametryzować wskaźnikami nazwy wyświetlane po tych komendach z jakiejś tablicy i już masz milion linii twojego kodu zaoszczędzone...<br /></div><br /><br /><br />Dzięki za pomoc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 15 wrz 2020, o 17:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-09-15T14:54:01+01:00</updated>
<published>2020-09-15T14:54:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228987#p228987</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228987#p228987"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228987#p228987"><![CDATA[
A na wskaźnikach się nieda?<br />W case przypisujesz odpowiednie wskaźniki do zmiennych, przekazanej do funkcji i funkcje wywolujesz z argumentami wskaźnikowymi na odpowiednie zmienne czasowe, tymi wskaźnikam posługujesz się też do zapisu nastaw.<br /><br />Jedna funkcja do wszystkich nastaw.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 15 wrz 2020, o 14:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2020-09-15T14:40:30+01:00</updated>
<published>2020-09-15T14:40:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228986#p228986</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228986#p228986"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228986#p228986"><![CDATA[
Tak jeśli dobrze odczytałem kod<br />to on wiele nie zmienia, zmieniła się tylko forma zapisu<br />do zmiennych <br />Czyli i tak potrzebuję tyle samo kodów wpisujących co u mnie<br /><br />Dla jasności co nazywam kodem wpisującym<br />[syntax=c]case 0:<br /><br /> case 0:<br />// kod do przypisywania wartości zmiennym dla _1_on_h itd. ( kod wpisujący wartości zmiennym nr1 )<br /><br />                increment(&amp;_1_on_h, 55, cmd, key_time);<br />                increment(&amp;_1_on_m, 54, cmd, key_time);<br />                increment(&amp;_1_on_s, 50, cmd, key_time);<br />                increment(&amp;_1_on_wy, 52, cmd, key_time);<br /> <br />                checkLimit(&amp;_1_on_s, 59);<br />                checkLimit(&amp;_1_on_m, 59);<br />                checkLimit(&amp;_1_on_h, 23);<br />                checkLimit(&amp;_1_on_wy, 8);<br /> <br /> <br />                lcd_cls(); // czyszczenie ekranu LCD<br />                lcd_locate(0,5);<br />                lcd_str(&quot;WY_1 ON &quot;);<br /> <br />                wyswietlacz(_1_on_s, _1_on_m, _1_on_h, _1_on_wy );<br /> <br />  case 1:<br />// kod do przypisywania wartości zmiennym dla _1_on_h itd. ( kod wpisujący wartości zmiennym nr 2 )<br />                increment(&amp;_1_off_h, 55, cmd, key_time);<br />                increment(&amp;_1_off_m, 54, cmd, key_time);<br />                increment(&amp;_1_off_s, 50, cmd, key_time);<br />                increment(&amp;_1_off_wy, 52, cmd, key_time);<br /> <br />                checkLimit(&amp;_1_off_s, 59);<br />                checkLimit(&amp;_1_off_m, 59);<br />                checkLimit(&amp;_1_off_h, 23);<br />                checkLimit(&amp;_1_off_wy, 8);<br /> <br /> <br />                lcd_cls(); // czyszczenie ekranu LCD<br />                lcd_locate(0,5);<br />                lcd_str(&quot;WY_1 OFF &quot;);<br /> <br />                wyswietlacz(_1_off_s, _1_off_m, _1_off_h, _1_off_wy );<br /> <br /> // I TAK 8 RAZY  <br /> // CHODZI OTO CZY MOŻNA TO SAMO ZROBIĆ BEZ TYLU POWTÓREK TEGO SAMEGO KODU            <br />            <br />            break;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 15 wrz 2020, o 14:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2020-09-15T13:00:46+01:00</updated>
<published>2020-09-15T13:00:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228985#p228985</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228985#p228985"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228985#p228985"><![CDATA[
<div class="quotetitle">miki53 napisał(a):</div><div class="quotecontent"><br />Nie mi chodzi oto czy jest jakiś prosty ( inny ) sposób<br />wpisywania wartości do zmiennych<br /></div><br /><br />Sprawdzałeś co Ci wyżej pokazałem?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 15 wrz 2020, o 13:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2020-09-15T11:42:40+01:00</updated>
<published>2020-09-15T11:42:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228984#p228984</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228984#p228984"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228984#p228984"><![CDATA[
Nie mi chodzi oto czy jest jakiś prosty ( inny ) sposób<br />wpisywania wartości do zmiennych<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 15 wrz 2020, o 11:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-09-15T09:06:31+01:00</updated>
<published>2020-09-15T09:06:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228982#p228982</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228982#p228982"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228982#p228982"><![CDATA[
Czy chodzi oto aby wyzerować wszystkie zmienne czasowe które używasz?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 15 wrz 2020, o 09:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2020-09-15T07:14:27+01:00</updated>
<published>2020-09-15T07:14:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228981#p228981</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228981#p228981"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228981#p228981"><![CDATA[
Ludziska podpowiedzcie chociaż czy dobrze kombinuję<br />z tym sposobem ustawiania czasów czy można to zrobić<br />prościej czy nie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 15 wrz 2020, o 07:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2020-09-14T11:28:59+01:00</updated>
<published>2020-09-14T11:28:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228979#p228979</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228979#p228979"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228979#p228979"><![CDATA[
Kombinowałem jak zrobić aby za pomocą tego kodu <br />wpisywać do wszystkich zmiennych wartości <br />Poniższy kod używać jako funkcję<br /><br />[syntax=c]if ( 55 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />                                          _1_on_h++;<br />                                                          beep(20);<br />                                                }<br />                         if ( 54 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ZIELONY 54 ( G )<br />                                                  _1_on_m++;<br />                                                          beep(20);<br />                                                }<br />                         if ( 50 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ŻÓŁTY 50 ( Y )<br />                                                  _1_on_s++;<br />                                                          beep(20);<br />                                                }<br />                         if ( 52 == cmd &amp;&amp;  key_time  ){ // -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />                                                  _1_on_wy++;<br />                                                                  beep(20);<br />                                            }<br /> <br />                               if( _1_on_s&gt;59) {<br />                                           _1_on_s=0;<br />                                          }<br /> <br />                                   if( _1_on_m&gt;59) {<br />                                           _1_on_m=0;<br />                                          }<br /> <br />                                   if( _1_on_h&gt;23) {<br />                                           _1_on_h=0;<br />                                          }<br /> <br />                                   if( _1_on_wy&gt;8) {<br />                                           _1_on_wy=0;<br />                                          }[/syntax]<br />niestety nic mi z tego nie wychodzi ponieważ mam 64 niezależne zmienne<br />i nawet jeśli zastosowałem wskażniki i na nich zmieniałem wartości a potem je przypisywałem<br />do zmiennych to  jakoś nie wychodziło bo wszystkie zmienne miały te same wartości ?<br /><br />Gdybym podstawiał zmienne pod ten kod to może by zadziałało <br />( jeden kod do nastawiania dla wszystkich zmiennych )<br />ale jak zmieniać nazwy zmiennych które aktualnie nastawiam ?<br /><br />Przepraszam jeśli zawile tłumaczę o co mi chodzi<br />proszę o pomysły jak to rozwiązać<br /><br />Może tego się nie da inaczej uwarunkować aby wpisywać wartości do zmiennych <br />dla każdej niezależnie?<br /><br />Potrzebuję podpowiedzi i przykładów jeśli wpisywanie wartości można inaczej zrobić<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 14 wrz 2020, o 11:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2020-09-08T07:18:21+01:00</updated>
<published>2020-09-08T07:18:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228930#p228930</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228930#p228930"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228930#p228930"><![CDATA[
<div class="quotetitle">miki53 napisał(a):</div><div class="quotecontent"><br />Mógłbym prosić o jakieś podpowiedzi jak uprościć<br />ten fragment kodu <br />[syntax=c]// **************************** USTAWIANIE WYJŚCIA NR-1 ********************************************<br /> <br />                        if( 32 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota strzałka do DOŁU V<br />                                 on_off = 0;<br />                          //       beep(20);<br />                                 }<br /> <br />                        if( 33 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota strzałka do GÓRY ^<br />                                             on_off = 1;<br />                                        //     beep(20);<br />                                             }<br /> <br />        switch (on_off)<br />        {<br />        case 0:<br /> <br />                     if ( 55 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />                                          _1_on_h++;<br />                                                          beep(20);<br />                                                }<br />                         if ( 54 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ZIELONY 54 ( G )<br />                                                  _1_on_m++;<br />                                                          beep(20);<br />                                                }<br />                         if ( 50 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ŻÓŁTY 50 ( Y )<br />                                                  _1_on_s++;<br />                                                          beep(20);<br />                                                }<br />                         if ( 52 == cmd &amp;&amp;  key_time  ){ // -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />                                                  _1_on_wy++;<br />                                                                  beep(20);<br />                                            }<br /> <br />                               if( _1_on_s&gt;59) {<br />                                           _1_on_s=0;<br />                                          }<br /> <br />                                   if( _1_on_m&gt;59) {<br />                                           _1_on_m=0;<br />                                          }<br /> <br />                                   if( _1_on_h&gt;23) {<br />                                           _1_on_h=0;<br />                                          }<br /> <br />                                   if( _1_on_wy&gt;8) {<br />                                           _1_on_wy=0;<br />                                          }<br /> <br />                //              lcd_cls(); // czyszczenie ekranu LCD<br />                                lcd_locate(0,5);<br />                                lcd_str(&quot;WY_1 ON &quot;);<br /> <br />                    wyswietlacz(_1_on_s, _1_on_m, _1_on_h, _1_on_wy );<br /> <br /> <br />        break;<br /> <br />        case 1:<br /> <br /> <br />                  if ( 55 == cmd &amp;&amp;  key_time  ){ //  -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />                                                           _1_off_h++;<br />                                                           beep(20);<br />                                                                                   }<br />                  if ( 54 == cmd &amp;&amp;  key_time  ){ //  -- KLAWISZ PILOTA MAŁY ZIELONY 54 ( G )<br />                                                           _1_off_m++;<br />                                                           beep(20);<br />                                                                                   }<br />                  if ( 50 == cmd &amp;&amp;  key_time  ){ //  -- KLAWISZ PILOTA MAŁY ŻÓŁTY 50 ( Y )<br />                                                           _1_off_s++;<br />                                                           beep(20);<br />                                                                                   }<br />                  if ( 52 == cmd &amp;&amp;  key_time  ){ //  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />                                                       _1_off_wy++;<br />                                                           beep(20);<br />                                                                                            }<br /> <br />                         if( _1_off_s&gt;59) {<br />                                     _1_off_s=0;<br />                                    }<br /> <br />                              if( _1_off_m&gt;59) {<br />                                      _1_off_m=0;<br />                                     }<br /> <br />                              if( _1_off_h&gt;23) {<br />                                      _1_off_h=0;<br />                                     }<br /> <br />                              if( _1_off_wy&gt;8) {<br />                                      _1_off_wy=0;<br />                                     }<br /> <br />                //                   lcd_cls(); // czyszczenie ekranu LCD<br />                                         lcd_locate(0,5);<br />                                         lcd_str(&quot;WY_1 OFF &quot;);<br /> <br />                                         wyswietlacz(_1_off_s, _1_off_m, _1_off_h, _1_off_wy );<br /> <br /> <br />        break;<br />        }<br /> <br />                        if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /> <br />                              ram_wyj&#91;0&#93; . on_hh = _1_on_h;<br />                                      ram_wyj&#91;0&#93; . on_mm = _1_on_m;<br />                                      ram_wyj&#91;0&#93; . on_ss = _1_on_s;<br />                                      ram_wyj&#91;0&#93; . on_wy = _1_on_wy;<br /> <br />                          ram_wyj&#91;0&#93; . off_hh = _1_off_h;<br />                                              ram_wyj&#91;0&#93; . off_mm = _1_off_m;<br />                                              ram_wyj&#91;0&#93; . off_ss = _1_off_s;<br />                                              ram_wyj&#91;0&#93; . off_wy = _1_off_wy;<br /> <br />                                              copy_ram_to_eem();<br />                                              beep(20);<br />                           }<br /> <br />                    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // klawisz pilota w LEWO &lt;&lt;&lt;<br />                                                 pozycja = 0;<br />                                                 on_off = 0;<br />                                                 beep(20);<br />                           }<br /> <br />// ******************************************************************************************************<br />        break;[/syntax]<br /><br />w tym fragmencie mam 8 zmiennych do których są wpisywane wartości za pomocą pilota <br />i mam takich sekcji 8 jak widać w kodzie wyżej <br />i teraz jak za pomocą tego jednego kodu do nastawiania, ustawić wartości dla wszystkich <br />zmiennych niezależnie <br />Nawet jak wezmę tablicę to każda zmienna musi mieć swój  indeks i jak ustawiać<br />hh,mm,ss,wy<br />Jak zmieniać nazwy zmiennych w kodzie do ustawiania wartości aby trafiały tam gdzie mają<br /></div><br /><br />np. tak dla case 0:<br /><br />[syntax=c]void increment(uint8_t *data, uint8_t cmd, uint8_t cmdReceived, uint8_t key_time)<br />{<br />if(cmd == cmdReceived &amp;&amp; key_time)<br />{<br />(*data)++;<br />beep(20);<br />}<br />}<br /><br />void checkLimit(uint8_t *data, uint8_t limit)<br />{<br />if((*data) &gt; limit)<br />{<br />*data = 0;<br />{<br />}<br /><br /><br />            case 0:<br />            increment(&amp;_1_on_h, 55, cmd, key_time);<br />            increment(&amp;_1_on_m, 54, cmd, key_time);<br />            increment(&amp;_1_on_s, 50, cmd, key_time);<br />            increment(&amp;_1_on_wy, 52, cmd, key_time);<br /><br />            checkLimit(&amp;_1_on_s, 59);<br />            checkLimit(&amp;_1_on_m, 59);<br />            checkLimit(&amp;_1_on_h, 23);<br />            checkLimit(&amp;_1_on_wy, 8);<br /><br /><br />                lcd_cls(); // czyszczenie ekranu LCD<br />                lcd_locate(0,5);<br />                lcd_str(&quot;WY_1 ON &quot;);<br /><br />                wyswietlacz(_1_on_s, _1_on_m, _1_on_h, _1_on_wy );<br /><br /><br />            break;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 8 wrz 2020, o 07:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2020-09-07T13:57:59+01:00</updated>
<published>2020-09-07T13:57:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228923#p228923</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228923#p228923"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228923#p228923"><![CDATA[
Mógłbym prosić o jakieś podpowiedzi jak uprościć<br />ten fragment kodu <br />[syntax=c]// **************************** USTAWIANIE WYJŚCIA NR-1 ********************************************<br /> <br />                        if( 32 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota strzałka do DOŁU V<br />                                 on_off = 0;<br />                          //       beep(20);<br />                                 }<br /> <br />                        if( 33 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota strzałka do GÓRY ^<br />                                             on_off = 1;<br />                                        //     beep(20);<br />                                             }<br /> <br />        switch (on_off)<br />        {<br />        case 0:<br /> <br />                     if ( 55 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />                                          _1_on_h++;<br />                                                          beep(20);<br />                                                }<br />                         if ( 54 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ZIELONY 54 ( G )<br />                                                  _1_on_m++;<br />                                                          beep(20);<br />                                                }<br />                         if ( 50 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ŻÓŁTY 50 ( Y )<br />                                                  _1_on_s++;<br />                                                          beep(20);<br />                                                }<br />                         if ( 52 == cmd &amp;&amp;  key_time  ){ // -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />                                                  _1_on_wy++;<br />                                                                  beep(20);<br />                                            }<br /> <br />                               if( _1_on_s&gt;59) {<br />                                           _1_on_s=0;<br />                                          }<br /> <br />                                   if( _1_on_m&gt;59) {<br />                                           _1_on_m=0;<br />                                          }<br /> <br />                                   if( _1_on_h&gt;23) {<br />                                           _1_on_h=0;<br />                                          }<br /> <br />                                   if( _1_on_wy&gt;8) {<br />                                           _1_on_wy=0;<br />                                          }<br /> <br />                //              lcd_cls(); // czyszczenie ekranu LCD<br />                                lcd_locate(0,5);<br />                                lcd_str(&quot;WY_1 ON &quot;);<br /> <br />                    wyswietlacz(_1_on_s, _1_on_m, _1_on_h, _1_on_wy );<br /> <br /> <br />        break;<br /> <br />        case 1:<br /> <br /> <br />                  if ( 55 == cmd &amp;&amp;  key_time  ){ //  -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />                                                           _1_off_h++;<br />                                                           beep(20);<br />                                                                                   }<br />                  if ( 54 == cmd &amp;&amp;  key_time  ){ //  -- KLAWISZ PILOTA MAŁY ZIELONY 54 ( G )<br />                                                           _1_off_m++;<br />                                                           beep(20);<br />                                                                                   }<br />                  if ( 50 == cmd &amp;&amp;  key_time  ){ //  -- KLAWISZ PILOTA MAŁY ŻÓŁTY 50 ( Y )<br />                                                           _1_off_s++;<br />                                                           beep(20);<br />                                                                                   }<br />                  if ( 52 == cmd &amp;&amp;  key_time  ){ //  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />                                                       _1_off_wy++;<br />                                                           beep(20);<br />                                                                                            }<br /> <br />                         if( _1_off_s&gt;59) {<br />                                     _1_off_s=0;<br />                                    }<br /> <br />                              if( _1_off_m&gt;59) {<br />                                      _1_off_m=0;<br />                                     }<br /> <br />                              if( _1_off_h&gt;23) {<br />                                      _1_off_h=0;<br />                                     }<br /> <br />                              if( _1_off_wy&gt;8) {<br />                                      _1_off_wy=0;<br />                                     }<br /> <br />                //                   lcd_cls(); // czyszczenie ekranu LCD<br />                                         lcd_locate(0,5);<br />                                         lcd_str(&quot;WY_1 OFF &quot;);<br /> <br />                                         wyswietlacz(_1_off_s, _1_off_m, _1_off_h, _1_off_wy );<br /> <br /> <br />        break;<br />        }<br /> <br />                        if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /> <br />                              ram_wyj&#91;0&#93; . on_hh = _1_on_h;<br />                                      ram_wyj&#91;0&#93; . on_mm = _1_on_m;<br />                                      ram_wyj&#91;0&#93; . on_ss = _1_on_s;<br />                                      ram_wyj&#91;0&#93; . on_wy = _1_on_wy;<br /> <br />                          ram_wyj&#91;0&#93; . off_hh = _1_off_h;<br />                                              ram_wyj&#91;0&#93; . off_mm = _1_off_m;<br />                                              ram_wyj&#91;0&#93; . off_ss = _1_off_s;<br />                                              ram_wyj&#91;0&#93; . off_wy = _1_off_wy;<br /> <br />                                              copy_ram_to_eem();<br />                                              beep(20);<br />                           }<br /> <br />                    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // klawisz pilota w LEWO &lt;&lt;&lt;<br />                                                 pozycja = 0;<br />                                                 on_off = 0;<br />                                                 beep(20);<br />                           }<br /> <br />// ******************************************************************************************************<br />        break;[/syntax]<br /><br />w tym fragmencie mam 8 zmiennych do których są wpisywane wartości za pomocą pilota <br />i mam takich sekcji 8 jak widać w kodzie wyżej <br />i teraz jak za pomocą tego jednego kodu do nastawiania, ustawić wartości dla wszystkich <br />zmiennych niezależnie <br />Nawet jak wezmę tablicę to każda zmienna musi mieć swój  indeks i jak ustawiać<br />hh,mm,ss,wy<br />Jak zmieniać nazwy zmiennych w kodzie do ustawiania wartości aby trafiały tam gdzie mają<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 7 wrz 2020, o 13:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2020-09-06T20:23:28+01:00</updated>
<published>2020-09-06T20:23:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228914#p228914</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228914#p228914"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228914#p228914"><![CDATA[
Panie Mirku <br /><br />widzę że powtarza się kod i dlatego wstawiłem go tu na forum <br />aby z pomocą kolegów go uprościć  ( ale z pomocą a nie żeby to zrobili za minie )<br /><br />Dlatego potrzebuję przykładu jak to zrobić <br /><br />to nie jest ustawianie wartości dla jednej zmiennej <br />lecz jest to cała sterta różnych zmiennych do których są przypisywane wartości<br />i wpisywane do struktury<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 6 wrz 2020, o 20:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2020-09-06T19:16:51+01:00</updated>
<published>2020-09-06T19:16:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228910#p228910</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228910#p228910"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228910#p228910"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Ja nie mam pomysłu jak to zrobić , więc przesyłam ten kod na forum może<br />koledzy będą mieli jakiś pomysł na skrócenie kodu, ponieważ jest w nim<br />wiele elementów powtarzających się ( ustawianie czasów dla poszczególnych wyjść )<br />Jak to uprościć ?<br /></div><br />Tak jak już Mirek napisał stwórz jakieś tablice a jak tego będzie mało,to te fragmenty kodu, które się powtarzają <br />a są często wykorzystywane, możesz jeszcze ubrać w funkcje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 6 wrz 2020, o 19:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-09-06T19:08:39+01:00</updated>
<published>2020-09-06T19:08:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228908#p228908</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228908#p228908"/>
<title type="html"><![CDATA[Re: Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228908#p228908"><![CDATA[
<div class="quotetitle">miki53 napisał(a):</div><div class="quotecontent"><br />  lcd_cls();<br />  lcd_locate(0,6);<br /></div><br /><br />nie widzisz chociażby tak drastycznie powtarzających się linii ?, które aż się proszą żeby je usunąć z obecnego kodu i dać w jednym miejscu przed switch. <br /><br />Sparametryzować wskaźnikami nazwy wyświetlane po tych komendach z jakiejś tablicy  i już masz milion linii twojego kodu zaoszczędzone... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Ale jak popatrzyłem dalej to takich &quot;kwiatków&quot; jest po prostu taki ogrom w tym kodzie, że szok. Dlatego spróbuj odnieść się do tego co napisałem i uprościć - to na pewno sam zauważysz dalszych milion takich miejsc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 wrz 2020, o 19:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2020-09-06T18:38:24+01:00</updated>
<published>2020-09-06T18:38:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228907#p228907</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228907#p228907"/>
<title type="html"><![CDATA[Tworzenie menu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23328&amp;p=228907#p228907"><![CDATA[
Witam <br /><br />Mam takie zapytanie, tworzę menu sterowane pilotem do swojego projektu sterownika<br />i zastanawiam się czy nie można by było to menu napisać nieco <br />prościej<br /><br />Ja nie mam pomysłu jak to zrobić , więc przesyłam ten kod na forum może<br />koledzy będą mieli jakiś pomysł na skrócenie kodu, ponieważ jest w nim<br />wiele elementów powtarzających się ( ustawianie czasów dla poszczególnych wyjść )<br />Jak to uprościć ?<br /><br />OTO KOD <br />[syntax=c]static  void parse_ir( uint8_t addr, uint8_t cmd, uint8_t key_time ) {<br /><br />if( addr ) return;<br />if( 0xff == cmd ) return;<br />// -----------------------------------------------------------------<br />// ---- wyświetlanie ile sekund pozostało do wyjścia z menu --------<br /><br />lcd_locate(0,1); //  w wierszu 0 na pozycji 1<br />lcd_str(&quot; &quot;);    //  wyczyśc ekran i wpisz<br />    tik=15;          //  liczbę 15<br /><br />// ********** WEJŚCIE DO MENU KLAWISZ OO **********************************************************<br /><br /><br />   if( 36 == cmd &amp;&amp; !key_time ){ // klawisz pilota OO<br />   stop_menu = 1;<br />   lcd_cls();<br />   lcd_locate(0,6);<br />   lcd_str(&quot;-MENU-&quot;);<br />//   tik=0;<br />   beep(20);<br /><br />   }<br /><br />// ========================== NAGŁÓWKI MENU =======================================================<br /><br />    if( 32 == cmd &amp;&amp; !key_time ) { // klawisz pilota strzałka do GÓRY ^<br />              nastawa++;<br />              beep(20);<br />              lcd_locate(1,0);<br />              lcd_int(nastawa);<br /><br />        if  ( nastawa &gt; 9 ) {<br />              nastawa = 9;<br />            }<br />                      }<br /><br />   if( 33 == cmd &amp;&amp; !key_time ) { // klawisz pilota strzałka w DÓŁ V<br />             nastawa--;<br />             beep(20);<br />             lcd_locate(1,0);<br />             lcd_int(nastawa);<br /><br />          if  ( nastawa &gt; 9 ){<br />            nastawa = 0;<br />                   }<br />             }<br /><br /><br />// *********** NAGŁÓWKI MENU **************<br /><br /><br /><br />switch (nastawa)<br /><br />{<br /><br />case 0:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-ZEGAR-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />         pozycja = 1;<br />           beep(20);<br />       }<br /><br />break;<br /><br /><br />case 1:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-DATA-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />           pozycja = 2;<br />             beep(20);<br />         }<br /><br />break;<br /><br /><br />case 2:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-WYJ_1-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />           pozycja = 3;<br />             beep(20);<br />         }<br /><br />break;<br /><br />case 3:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-WYJ_2-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />           pozycja = 4;<br />             beep(20);<br />         }<br /><br />break;<br /><br /><br />case 4:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-WYJ_3-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />           pozycja = 5;<br />             beep(20);<br />         }<br /><br />break;<br /><br /><br />case 5:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-WYJ_4-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />           pozycja = 6;<br />             beep(20);<br />         }<br /><br />break;<br /><br /><br />case 6:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-WYJ_5-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />           pozycja = 7;<br />             beep(20);<br />         }<br /><br />break;<br /><br /><br />case 7:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-WYJ_6-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />           pozycja = 8;<br />             beep(20);<br />         }<br /><br />break;<br /><br /><br />case 8:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-WYJ_7-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />           pozycja = 9;<br />             beep(20);<br />         }<br /><br />break;<br /><br />case 9:<br />  lcd_cls();<br />  lcd_locate(0,6);<br />  lcd_str(&quot;-WYJ_8-&quot;);<br /><br />  if( 16 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota w PRAWO &gt;&gt;&gt;<br />           pozycja = 10;<br />             beep(20);<br />         }<br /><br />break;<br />}<br /><br />// **********************************  MENU ***************************************************************<br /><br />// **************************** NASTAWIANIE ZEGARA ********************************************************<br /><br />// ------------------------ KLAWISZE DO USTAWIANIA ZEGARA -------------------------------------------------<br /><br />switch (pozycja)<br /><br />{<br /><br />case 1:<br />                       lcd_cls();<br />   lcd_locate(0,6);<br />   lcd_str(&quot;US-CZAS&quot;);<br /><br /><br /><br />  if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie godzin -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />                       hh++;<br />                       beep(20);<br />                   }<br />  if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie minut  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />                       mm++;<br />                       beep(20);<br />                   }<br />  if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie sekund -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />                       ss++;<br />                       beep(20);<br />                   }<br /><br />         if(ss&gt;59) {<br />            ss=0;<br />            }<br /><br />         if(mm&gt;59) {<br />            mm=0;<br />            }<br /><br />         if(hh&gt;23) {<br />            hh=0;<br />            }<br /><br /><br />//    lcd_cls(); // czyszczenie ekranu LCD<br /> lcd_locate(1,0);<br />if( hh &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(hh);<br />lcd_str(&quot;:&quot;);<br />if( mm &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(mm);<br />lcd_str(&quot;:&quot;);<br />if( ss &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(ss);<br /><br />// ============================= ZAPIS DO PAMIĘCI ZEGARA ===================================================<br /><br />    if( 59 == cmd &amp;&amp; key_time == 0 ) { // zapis klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK<br />        DS3231_set_time( hh, mm, ss );<br />                beep(20);<br />               }<br /><br />    if( 17 == cmd &amp;&amp; key_time == 0 ) { // wyjście klawisz pilota w LEWO &lt;&lt;&lt;<br />    pozycja = 0;<br />    beep(20);<br />      }<br />// *********************************************************************************************************<br /><br />break;<br /><br /><br />case 2:<br />// ****************************  NASTAWA DATY *****************************************************<br />// ------------------------ KLAWISZE DO USTAWIANIA DATY -------------------------------------------------<br /><br />                           lcd_cls();<br />   lcd_locate(0,5);<br />   lcd_str(&quot;US-DATE&quot;);<br /><br /><br /><br /> if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />rok++;<br />beep(20);<br />}<br /><br /> if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />miesiac++;<br />            beep(20);<br />}<br /><br />     if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />            dzien++;<br />beep(20);<br />    }<br /><br /> if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />dzien_tygodnia++;<br />beep(20);<br />        }<br /><br /><br />if(rok&gt;90)  { // ROK<br />   rok=0;<br />   }<br /><br />    if(miesiac&gt;12) { // MIESIĄC<br />   miesiac=0;<br />   }<br /><br />    if(dzien&gt;31)   { // DZIEŃ<br />   dzien=0;<br />   }<br /><br />if(dzien_tygodnia&gt;7)   { // DZIŃ TYGODNIA<br />   dzien_tygodnia=0;<br />   }<br /><br />//    lcd_cls(); // czyszczenie ekranu LCD<br />lcd_locate(1,0);<br />    lcd_str(&quot;20&quot;);<br />if( rok &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int( rok );<br />lcd_str(&quot;-&quot;);<br />if( miesiac &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int( miesiac );<br />lcd_str(&quot;-&quot;);<br />if( dzien &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int( dzien );<br />lcd_str(&quot;  &quot;);<br />lcd_int( dzien_tygodnia );<br /><br />// ========================== ZAPIS DO PAMIĘCI ZEGARA ======================================================<br /><br />if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br />    DS3231_set_date( rok, miesiac, dzien, dzien_tygodnia );<br /> beep(20);<br />               }<br /><br />     if( 17 == cmd &amp;&amp; key_time == 0 ) {  // wyjście klawisz pilota w LEWO &lt;&lt;&lt;<br />pozycja = 0;<br />beep(20);<br />                           }<br />// **********************************************************************************************************<br />break;<br /><br />case 3:<br />// **************************** USTAWIANIE WYJŚCIA NR-1 *****************************************************<br /><br />if( 32 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota strzałka do DOŁU V<br />             on_off = 0;<br />          //       beep(20);<br />                 }<br /><br />if( 33 == cmd &amp;&amp; key_time == 0 ) { // klawisz pilota strzałka do GÓRY ^<br />     on_off = 1;<br />//     beep(20);<br />     }<br /><br />switch (on_off)<br />{<br />case 0:<br /><br />     if ( 55 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />                      _1_on_h++;<br />          beep(20);<br />}<br /> if ( 54 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ZIELONY 54 ( G )<br />                  _1_on_m++;<br />          beep(20);<br />}<br /> if ( 50 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ŻÓŁTY 50 ( Y )<br />                  _1_on_s++;<br />          beep(20);<br />}<br /> if ( 52 == cmd &amp;&amp;  key_time  ){ // -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />                  _1_on_wy++;<br />   beep(20);<br />     }<br /><br />       if( _1_on_s&gt;59) {<br />   _1_on_s=0;<br />  }<br /><br />   if( _1_on_m&gt;59) {<br />   _1_on_m=0;<br />  }<br /><br />   if( _1_on_h&gt;23) {<br />   _1_on_h=0;<br />  }<br /><br />   if( _1_on_wy&gt;8) {<br />   _1_on_wy=0;<br />  }<br /><br />//        lcd_cls(); // czyszczenie ekranu LCD<br />       lcd_locate(0,5);<br />       lcd_str(&quot;WY_1 ON &quot;);<br /><br />                    wyswietlacz(_1_on_s, _1_on_m, _1_on_h, _1_on_wy );<br /><br /><br />break;<br /><br />case 1:<br /><br /><br />  if ( 55 == cmd &amp;&amp;  key_time  ){ //  -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />   _1_off_h++;<br />   beep(20);<br />                   }<br />  if ( 54 == cmd &amp;&amp;  key_time  ){ //  -- KLAWISZ PILOTA MAŁY ZIELONY 54 ( G )<br />   _1_off_m++;<br />   beep(20);<br />                   }<br />  if ( 50 == cmd &amp;&amp;  key_time  ){ //  -- KLAWISZ PILOTA MAŁY ŻÓŁTY 50 ( Y )<br />   _1_off_s++;<br />   beep(20);<br />                   }<br />  if ( 52 == cmd &amp;&amp;  key_time  ){ //  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />       _1_off_wy++;<br />    beep(20);<br />             }<br /><br />         if( _1_off_s&gt;59) {<br />      _1_off_s=0;<br />     }<br /><br />       if( _1_off_m&gt;59) {<br />       _1_off_m=0;<br />      }<br /><br />       if( _1_off_h&gt;23) {<br />       _1_off_h=0;<br />      }<br /><br />       if( _1_off_wy&gt;8) {<br />       _1_off_wy=0;<br />      }<br /><br />//     lcd_cls(); // czyszczenie ekranu LCD<br />   lcd_locate(0,5);<br />   lcd_str(&quot;WY_1 OFF &quot;);<br /><br />   wyswietlacz(_1_off_s, _1_off_m, _1_off_h, _1_off_wy );<br /><br /><br />break;<br />}<br /><br />if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /><br />                      ram_wyj&#91;0&#93; . on_hh = _1_on_h;<br />            ram_wyj&#91;0&#93; . on_mm = _1_on_m;<br />            ram_wyj&#91;0&#93; . on_ss = _1_on_s;<br />            ram_wyj&#91;0&#93; . on_wy = _1_on_wy;<br /><br />                          ram_wyj&#91;0&#93; . off_hh = _1_off_h;<br />        ram_wyj&#91;0&#93; . off_mm = _1_off_m;<br />        ram_wyj&#91;0&#93; . off_ss = _1_off_s;<br />        ram_wyj&#91;0&#93; . off_wy = _1_off_wy;<br /><br />        copy_ram_to_eem();<br />        beep(20);<br />   }<br /><br />    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // klawisz pilota w LEWO &lt;&lt;&lt;<br />    pozycja = 0;<br />    on_off = 0;<br />      beep(20);<br />   }<br /><br />// ******************************************************************************************************<br />break;<br /><br />case 4:<br />// **************************** USTAWIANIE WYJŚCIA NR-2 *****************************************************<br /><br /><br />if( 32 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do DOŁU V<br />             on_off = 0;<br />                 beep(20);<br />                 }<br /><br />if( 33 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do GÓRY ^<br />     on_off = 1;<br />     beep(20);<br />     }<br /><br />switch (on_off)<br />{<br />case 0:<br /><br />     if ( 55 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />          _2_on_h++;<br />          beep(20);<br />}<br /> if ( 54 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ZIELONY 54 ( G )<br />          _2_on_m++;<br />          beep(20);<br />}<br /> if ( 50 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ŻÓŁTY 50 ( Y )<br />          _2_on_s++;<br />          beep(20);<br />}<br /> if ( 52 == cmd &amp;&amp;  key_time  ){ // -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />   _2_on_wy++;<br />   beep(20);<br />     }<br /><br />       if( _2_on_s&gt;59) {<br />   _2_on_s=0;<br />  }<br /><br />   if( _2_on_m&gt;59) {<br />   _2_on_m=0;<br />  }<br /><br />   if( _2_on_h&gt;23) {<br />   _2_on_h=0;<br />  }<br /><br />   if( _2_on_wy&gt;8) {<br />   _2_on_wy=0;<br />  }<br /><br />        lcd_cls(); // czyszczenie ekranu LCD<br />       lcd_locate(0,5);<br />       lcd_str(&quot;WY_2 ON&quot;);<br /><br />       wyswietlacz(_2_on_s, _2_on_m, _2_on_h, _2_on_wy );<br /><br />break;<br /><br />case 1:<br /><br /><br />  if ( 55 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />   _2_off_h++;<br />   beep(20);<br />                   }<br />  if ( 54 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ZIELONY 54 ( G )<br />   _2_off_m++;<br />   beep(20);<br />                   }<br />  if ( 50 == cmd &amp;&amp;  key_time  ){ // -- KLAWISZ PILOTA MAŁY ŻÓŁTY 50 ( Y )<br />   _2_off_s++;<br />   beep(20);<br />                   }<br />  if ( 52 == cmd &amp;&amp;  key_time  ){ // -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />       _2_off_wy++;<br />    beep(20);<br />             }<br /><br />       if( _2_off_s&gt;59) {<br />    _2_off_s=0;<br />   }<br /><br />    if( _2_off_m&gt;59) {<br />    _2_off_m=0;<br />   }<br /><br />    if( _2_off_h&gt;23) {<br />    _2_off_h=0;<br />   }<br /><br />    if( _2_off_wy&gt;8) {<br />    _2_off_wy=0;<br />   }<br /><br />lcd_cls(); // czyszczenie ekranu LCD<br />lcd_locate(0,5);<br />lcd_str(&quot;WY_2 OFF&quot;);<br /><br />wyswietlacz(_2_off_s, _2_off_m, _2_off_h, _2_off_wy );<br /><br /><br />break;<br />}<br /><br />if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /><br /> ram_wyj&#91;1&#93; . on_hh = _2_on_h;<br />     ram_wyj&#91;1&#93; . on_mm = _2_on_m;<br />     ram_wyj&#91;1&#93; . on_ss = _2_on_s;<br />     ram_wyj&#91;1&#93; . on_wy = _2_on_wy;<br /><br /> ram_wyj&#91;1&#93; . off_hh = _2_off_h;<br /> ram_wyj&#91;1&#93; . off_mm = _2_off_m;<br /> ram_wyj&#91;1&#93; . off_ss = _2_off_s;<br /> ram_wyj&#91;1&#93; . off_wy = _2_off_wy;<br /><br /> copy_ram_to_eem();<br /> beep(20);<br />   }<br /><br />    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // WYJŚCIE - klawisz pilota w LEWO &lt;&lt;&lt;<br />    pozycja = 0;<br />    on_off = 0;<br />      beep(20);<br />   }<br /><br />// **********************************************************************************************************<br />break;<br /><br />case 5:<br />// **************************** USTAWIANIE WYJŚCIA NR-3 *****************************************************<br /><br /><br />if( 32 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do DOŁU V<br />             on_off = 0;<br />                 beep(20);<br />                 }<br /><br />if( 33 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do GÓRY ^<br />     on_off = 1;<br />     beep(20);<br />     }<br /><br />switch (on_off)<br />{<br />case 0:<br /><br /><br />     if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />          _3_on_h++;<br />          beep(20);<br />}<br /> if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />          _3_on_m++;<br />          beep(20);<br />}<br /> if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />          _3_on_s++;<br />          beep(20);<br />}<br /> if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />   _3_on_wy++;<br />   beep(20);<br />     }<br /><br />       if( _3_on_s&gt;59) {<br />   _3_on_s=0;<br />  }<br /><br />   if( _3_on_m&gt;59) {<br />   _3_on_m=0;<br />  }<br /><br />   if( _3_on_h&gt;23) {<br />   _3_on_h=0;<br />  }<br /><br />   if( _3_on_wy&gt;8) {<br />   _3_on_wy=0;<br />  }<br /><br />        lcd_cls(); // czyszczenie ekranu LCD<br />       lcd_locate(0,5);<br />       lcd_str(&quot;WY_3 ON&quot;);<br /><br />    wyswietlacz(_3_on_s, _3_on_m, _3_on_h, _3_on_wy );<br /><br /><br />break;<br /><br />case 1:<br /><br /><br />  if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />   _3_off_h++;<br />   beep(20);<br />                   }<br />  if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />   _3_off_m++;<br />   beep(20);<br />                   }<br />  if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />   _3_off_s++;<br />   beep(20);<br />                   }<br />  if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />       _3_off_wy++;<br />    beep(20);<br />             }<br /><br />       if( _3_off_s&gt;59) {<br />    _3_off_s=0;<br />   }<br /><br />    if( _3_off_m&gt;59) {<br />    _3_off_m=0;<br />   }<br /><br />    if( _3_off_h&gt;23) {<br />    _3_off_h=0;<br />   }<br /><br />    if( _3_off_wy&gt;8) {<br />    _3_off_wy=0;<br />   }<br /><br /> lcd_cls(); // czyszczenie ekranu LCD<br /> lcd_locate(0,5);<br /> lcd_str(&quot;WY_3 OFF&quot;);<br /><br /> wyswietlacz(_3_off_s, _3_off_m, _3_off_h, _3_off_wy );<br /><br />break;<br />}<br /><br />if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /><br /> ram_wyj&#91;2&#93; . on_hh = _3_on_h;<br />     ram_wyj&#91;2&#93; . on_mm = _3_on_m;<br />     ram_wyj&#91;2&#93; . on_ss = _3_on_s;<br />     ram_wyj&#91;2&#93; . on_wy = _3_on_wy;<br /><br /> ram_wyj&#91;2&#93; . off_hh = _3_off_h;<br /> ram_wyj&#91;2&#93; . off_mm = _3_off_m;<br /> ram_wyj&#91;2&#93; . off_ss = _3_off_s;<br /> ram_wyj&#91;2&#93; . off_wy = _3_off_wy;<br /><br /> copy_ram_to_eem();<br /> beep(20);<br />   }<br /><br />    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // klawisz pilota w LEWO &lt;&lt;&lt;<br />    pozycja = 0;<br />    on_off = 0;<br />      beep(20);<br />   }<br /><br />// ******************************************************************************************************<br />break;<br /><br />case 6:<br />// **************************** USTAWIANIE WYJŚCIA NR-4 *****************************************************<br /><br /><br />if( 32 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do DOŁU V<br />             on_off = 0;<br />                 beep(20);<br />                 }<br /><br />if( 33 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do GÓRY ^<br />     on_off = 1;<br />     beep(20);<br />     }<br /><br />switch (on_off)<br />{<br />case 0:<br /><br /><br />     if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />          _4_on_h++;<br />          beep(20);<br />}<br /> if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />          _4_on_m++;<br />          beep(20);<br />}<br /> if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />          _4_on_s++;<br />          beep(20);<br />}<br /> if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />   _4_on_wy++;<br />   beep(20);<br />     }<br /><br />       if( _4_on_s&gt;59) {<br />   _4_on_s=0;<br />  }<br /><br />   if( _4_on_m&gt;59) {<br />   _4_on_m=0;<br />  }<br /><br />   if( _4_on_h&gt;23) {<br />   _4_on_h=0;<br />  }<br /><br />   if( _4_on_wy&gt;8) {<br />   _4_on_wy=0;<br />  }<br /><br />            lcd_cls(); // czyszczenie ekranu LCD<br />       lcd_locate(0,5);<br />       lcd_str(&quot;WY_4 ON&quot;);<br /><br />    wyswietlacz(_4_on_s, _4_on_m, _4_on_h, _4_on_wy );<br /><br />break;<br /><br />case 1:<br /><br /><br />  if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />   _4_off_h++;<br />   beep(20);<br />                   }<br />  if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />   _4_off_m++;<br />   beep(20);<br />                   }<br />  if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />   _4_off_s++;<br />   beep(20);<br />                   }<br />  if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />       _4_off_wy++;<br />    beep(20);<br />             }<br /><br />       if( _4_off_s&gt;59) {<br />    _4_off_s=0;<br />   }<br /><br />    if( _4_off_m&gt;59) {<br />    _4_off_m=0;<br />   }<br /><br />    if( _4_off_h&gt;23) {<br />    _4_off_h=0;<br />   }<br /><br />    if( _4_off_wy&gt;8) {<br />    _4_off_wy=0;<br />   }<br /><br /> lcd_cls(); // czyszczenie ekranu LCD<br /> lcd_locate(0,5);<br /> lcd_str(&quot;WY_4 OFF&quot;);<br /><br /> wyswietlacz(_4_off_s, _4_off_m, _4_off_h, _4_off_wy );<br /><br />break;<br />}<br /><br />if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /><br />         ram_wyj&#91;3&#93; . on_hh = _4_on_h;<br />     ram_wyj&#91;3&#93; . on_mm = _4_on_m;<br />     ram_wyj&#91;3&#93; . on_ss = _4_on_s;<br />     ram_wyj&#91;3&#93; . on_wy = _4_on_wy;<br /><br /> ram_wyj&#91;3&#93; . off_hh = _4_off_h;<br /> ram_wyj&#91;3&#93; . off_mm = _4_off_m;<br /> ram_wyj&#91;3&#93; . off_ss = _4_off_s;<br /> ram_wyj&#91;3&#93; . off_wy = _4_off_wy;<br /><br /> copy_ram_to_eem();<br /> beep(20);<br /><br />   }<br /><br />    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // klawisz pilota w LEWO &lt;&lt;&lt;<br />    pozycja = 0;<br />    on_off = 0;<br />      beep(20);<br />   }<br /><br />// ******************************************************************************************************<br />break;<br /><br />case 7:<br />// **************************** USTAWIANIE WYJŚCIA NR-5 *****************************************************<br /><br /><br />if( 32 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do DOŁU V<br />             on_off = 0;<br />                 beep(20);<br />                 }<br /><br />if( 33 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do GÓRY ^<br />     on_off = 1;<br />     beep(20);<br />     }<br /><br />switch (on_off)<br />{<br />case 0:<br /><br /><br />     if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />          _5_on_h++;<br />          beep(20);<br />}<br /> if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />          _5_on_m++;<br />          beep(20);<br />}<br /> if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />          _5_on_s++;<br />          beep(20);<br />}<br /> if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />   _5_on_wy++;<br />   beep(20);<br />     }<br /><br />       if( _5_on_s&gt;59) {<br />   _5_on_s=0;<br />  }<br /><br />   if( _5_on_m&gt;59) {<br />   _5_on_m=0;<br />  }<br /><br />   if( _5_on_h&gt;23) {<br />   _5_on_h=0;<br />  }<br /><br />   if( _5_on_wy&gt;8) {<br />   _5_on_wy=0;<br />  }<br /><br />        lcd_cls(); // czyszczenie ekranu LCD<br />       lcd_locate(0,5);<br />       lcd_str(&quot;WY_5 ON&quot;);<br /><br />       wyswietlacz(_5_on_s, _5_on_m, _5_on_h, _5_on_wy );<br /><br />break;<br /><br />case 1:<br /><br /><br />  if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />   _5_off_h++;<br />   beep(20);<br />                   }<br />  if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />   _5_off_m++;<br />   beep(20);<br />                   }<br />  if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />   _5_off_s++;<br />   beep(20);<br />                   }<br />  if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />       _5_off_wy++;<br />    beep(20);<br />             }<br /><br />       if( _5_off_s&gt;59) {<br />    _5_off_s=0;<br />   }<br /><br />    if( _5_off_m&gt;59) {<br />    _5_off_m=0;<br />   }<br /><br />    if( _5_off_h&gt;23) {<br />    _5_off_h=0;<br />   }<br /><br />    if( _5_off_wy&gt;8) {<br />    _5_off_wy=0;<br />   }<br /><br /> lcd_cls(); // czyszczenie ekranu LCD<br /> lcd_locate(0,5);<br /> lcd_str(&quot;WY_5 OFF&quot;);<br /><br /> wyswietlacz(_5_off_s, _5_off_m, _5_off_h, _5_off_wy );<br /><br />break;<br />}<br /><br />if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /><br /> ram_wyj&#91;4&#93; . on_hh = _5_on_h;<br /> ram_wyj&#91;4&#93; . on_mm = _5_on_m;<br /> ram_wyj&#91;4&#93; . on_ss = _5_on_s;<br /> ram_wyj&#91;4&#93; . on_wy = _5_on_wy;<br /><br /> ram_wyj&#91;4&#93; . off_hh = _5_off_h;<br /> ram_wyj&#91;4&#93; . off_mm = _5_off_m;<br /> ram_wyj&#91;4&#93; . off_ss = _5_off_s;<br /> ram_wyj&#91;4&#93; . off_wy = _5_off_wy;<br /><br /> copy_ram_to_eem();<br /> beep(20);<br />   }<br /><br />    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // klawisz pilota w LEWO &lt;&lt;&lt;<br />    pozycja = 0;<br />    on_off = 0;<br />      beep(20);<br />   }<br /><br />// ******************************************************************************************************<br />break;<br /><br />case 8:<br />// **************************** USTAWIANIE WYJŚCIA NR-6 *****************************************************<br /><br /><br />if( 32 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do DOŁU V<br />             on_off = 0;<br />                 beep(20);<br />                 }<br /><br />if( 33 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do GÓRY ^<br />     on_off = 1;<br />     beep(20);<br />     }<br /><br />switch (on_off)<br />{<br />case 0:<br /><br /><br />     if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />          _6_on_h++;<br />          beep(20);<br />}<br /> if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />          _6_on_m++;<br />          beep(20);<br />}<br /> if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />          _6_on_s++;<br />          beep(20);<br />}<br /> if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />   _6_on_wy++;<br />   beep(20);<br />     }<br /><br />       if( _6_on_s&gt;59) {<br />   _6_on_s=0;<br />  }<br /><br />   if( _6_on_m&gt;59) {<br />   _6_on_m=0;<br />  }<br /><br />   if( _6_on_h&gt;23) {<br />   _6_on_h=0;<br />  }<br /><br />   if( _6_on_wy&gt;8) {<br />   _6_on_wy=0;<br />  }<br /><br />        lcd_cls(); // czyszczenie ekranu LCD<br />       lcd_locate(0,5);<br />       lcd_str(&quot;WY_6 ON&quot;);<br /><br />       wyswietlacz(_6_on_s, _6_on_m, _6_on_h, _6_on_wy );<br /><br />break;<br /><br />case 1:<br /><br /><br />  if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />   _6_off_h++;<br />   beep(20);<br />                   }<br />  if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />   _6_off_m++;<br />   beep(20);<br />                   }<br />  if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />   _6_off_s++;<br />   beep(20);<br />                   }<br />  if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />       _6_off_wy++;<br />    beep(20);<br />             }<br /><br />       if( _6_off_s&gt;59) {<br />    _6_off_s=0;<br />   }<br /><br />    if( _6_off_m&gt;59) {<br />    _6_off_m=0;<br />   }<br /><br />    if( _6_off_h&gt;23) {<br />    _6_off_h=0;<br />   }<br /><br />    if( _6_off_wy&gt;8) {<br />    _6_off_wy=0;<br />   }<br /><br />lcd_cls(); // czyszczenie ekranu LCD<br />lcd_locate(0,5);<br />lcd_str(&quot;WY_6 OFF&quot;);<br /><br />wyswietlacz(_6_off_s, _6_off_m, _6_off_h, _6_off_wy );<br /><br />break;<br />}<br /><br />if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /><br /> ram_wyj&#91;5&#93; . on_hh = _6_on_h;<br /> ram_wyj&#91;5&#93; . on_mm = _6_on_m;<br /> ram_wyj&#91;5&#93; . on_ss = _6_on_s;<br /> ram_wyj&#91;5&#93; . on_wy = _6_on_wy;<br /><br /> ram_wyj&#91;5&#93; . off_hh = _6_off_h;<br /> ram_wyj&#91;5&#93; . off_mm = _6_off_m;<br /> ram_wyj&#91;5&#93; . off_ss = _6_off_s;<br /> ram_wyj&#91;5&#93; . off_wy = _6_off_wy;<br /><br /> copy_ram_to_eem();<br /> beep(20);<br /><br />   }<br /><br />    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // klawisz pilota w LEWO &lt;&lt;&lt;<br />    pozycja = 0;<br />    on_off = 0;<br />      beep(20);<br />   }<br /><br />// ******************************************************************************************************<br />break;<br /><br />case 9:<br />// **************************** USTAWIANIE WYJŚCIA NR-7 *****************************************************<br /><br /><br />if( 32 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do DOŁU V<br />             on_off = 0;<br />                 beep(20);<br />                 }<br /><br />if( 33 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do GÓRY ^<br />     on_off = 1;<br />     beep(20);<br />     }<br /><br />switch (on_off)<br />{<br />case 0:<br /><br /><br />     if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />          _7_on_h++;<br />          beep(20);<br />}<br /> if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />          _7_on_m++;<br />          beep(20);<br />}<br /> if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />          _7_on_s++;<br />          beep(20);<br />}<br /> if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />   _7_on_wy++;<br />   beep(20);<br />     }<br /><br />       if( _7_on_s&gt;59) {<br />   _7_on_s=0;<br />  }<br /><br />   if( _7_on_m&gt;59) {<br />   _7_on_m=0;<br />  }<br /><br />   if( _7_on_h&gt;23) {<br />   _7_on_h=0;<br />  }<br /><br />   if( _7_on_wy&gt;8) {<br />   _7_on_wy=0;<br />  }<br /><br />        lcd_cls(); // czyszczenie ekranu LCD<br />       lcd_locate(0,5);<br />       lcd_str(&quot;WY_7 ON&quot;);<br /><br />       wyswietlacz(_7_on_s, _7_on_m, _7_on_h, _7_on_wy );<br /><br />break;<br /><br />case 1:<br /><br /><br />  if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie roku -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br />   _7_off_h++;<br />   beep(20);<br />                   }<br />  if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  miesiąc  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />   _7_off_m++;<br />   beep(20);<br />                   }<br />  if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie nr.dnia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />   _7_off_s++;<br />   beep(20);<br />                   }<br />  if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia nazwa dnia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />       _7_off_wy++;<br />    beep(20);<br />             }<br />       if( _7_off_s&gt;59) {<br />    _7_off_s=0;<br />   }<br /><br />    if( _7_off_m&gt;59) {<br />    _7_off_m=0;<br />   }<br /><br />    if( _7_off_h&gt;23) {<br />    _7_off_h=0;<br />   }<br /><br />    if( _7_off_wy&gt;8) {<br />    _7_off_wy=0;<br />   }<br /><br />         lcd_cls(); // czyszczenie ekranu LCD<br />   lcd_locate(0,5);<br />   lcd_str(&quot;WY_7 OFF&quot;);<br /><br />   wyswietlacz(_7_off_s, _7_off_m, _7_off_h, _7_off_wy );<br /><br />break;<br />}<br /><br />if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /><br /> ram_wyj&#91;6&#93; . on_hh = _7_on_h;<br /> ram_wyj&#91;6&#93; . on_mm = _7_on_m;<br /> ram_wyj&#91;6&#93; . on_ss = _7_on_s;<br /> ram_wyj&#91;6&#93; . on_wy = _7_on_wy;<br /><br /> ram_wyj&#91;6&#93; . off_hh = _7_off_h;<br /> ram_wyj&#91;6&#93; . off_mm = _7_off_m;<br /> ram_wyj&#91;6&#93; . off_ss = _7_off_s;<br /> ram_wyj&#91;6&#93; . off_wy = _7_off_wy;<br /><br /> copy_ram_to_eem();<br /> beep(20);<br /><br />   }<br /><br />    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // klawisz pilota w LEWO &lt;&lt;&lt; / wyjście<br />    pozycja = 0;<br />    on_off = 0;<br />      beep(20);<br />   }<br /><br />// ******************************************************************************************************<br />break;<br /><br />case 10:<br />// **************************** USTAWIANIE WYJŚCIA NR-8 *****************************************************<br /><br /><br />if( 32 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do DOŁU V<br />             on_off = 0;<br />                 beep(20);<br />                 }<br /><br />if( 33 == cmd &amp;&amp; key_time ) { // klawisz pilota strzałka do GÓRY ^<br />     on_off = 1;<br />     beep(20);<br />     }<br /><br />switch (on_off)<br />{<br />case 0:<br /><br /><br />if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie godziny włączenia -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br /> _8_on_h++;<br />  beep(20);<br />}<br />    if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  minuty włączenia  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br />     _8_on_m++;<br />  beep(20);<br />}<br />if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie sekundy włączenia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br />     _8_on_s++;<br />      beep(20);<br />}<br />if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienie włączanie nr wyjścia  -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br />  _8_on_wy++;<br />   beep(20);<br />     }<br /><br />       if( _8_on_s&gt;59) {<br />   _8_on_s=0;<br />  }<br /><br />   if( _8_on_m&gt;59) {<br />   _8_on_m=0;<br />  }<br /><br />   if( _8_on_h&gt;23) {<br />   _8_on_h=0;<br />  }<br /><br />   if( _8_on_wy&gt;8) {<br />   _8_on_wy=0;<br />  }<br /><br />        lcd_cls(); // czyszczenie ekranu LCD<br />       lcd_locate(0,5);<br />       lcd_str(&quot;WY_8 ON&quot;);<br /><br />       wyswietlacz(_8_on_s, _8_on_m, _8_on_h, _8_on_wy );<br /><br />break;<br /><br />case 1:<br /><br /><br />if ( 55 == cmd &amp;&amp;  key_time  ){ // Ustawianie godziny wyłączenia -- KLAWISZ PILOTA MAŁY CZERWONY 55 ( R )<br /> _8_off_h++;<br />  beep(20);<br />}<br />if ( 54 == cmd &amp;&amp;  key_time  ){ // Ustawianie  minut wyłączenia  -- KLAWISZ PILOTA ZIELONY 54 ( G )<br /> _8_off_m++;<br />  beep(20);<br />}<br />if ( 50 == cmd &amp;&amp;  key_time  ){ // Ustawianie sekundy wyłączenia -- KLAWISZ PILOTA ŻÓŁTY 50 ( Y )<br /> _8_off_s++;<br />  beep(20);<br />    }<br />if ( 52 == cmd &amp;&amp;  key_time  ){ // Ustawienia wyłączenia wyjścia nr wyjścia -- klawisz pilota MAŁY NIEBIESKI 52 ( B )<br /> _8_off_wy++;<br />  beep(20);<br />                }<br /><br />if( _8_off_s&gt;59) {<br />_8_off_s=0;<br /> }<br /><br />if( _8_off_m&gt;59) {<br />_8_off_m=0;<br /> }<br /><br />if( _8_off_h&gt;23) {<br />_8_off_h=0;<br /> }<br /><br />if( _8_off_wy&gt;8) {<br />_8_off_wy=0;<br /> }<br /><br /><br />         lcd_cls(); // czyszczenie ekranu LCD<br />       lcd_locate(0,5);<br />       lcd_str(&quot;WY_8 OFF&quot;);<br /><br />        wyswietlacz(_8_off_s, _8_off_m, _8_off_h, _8_off_wy );<br /><br />break;<br />}<br /><br />if( 59 == cmd &amp;&amp; key_time == 0 ) { //  klawisz pilota NIEBIESKI ŚRODKOWY -&gt; OK / zapis do pamięci<br /><br /> ram_wyj&#91;7&#93; . on_hh = _8_on_h;<br /> ram_wyj&#91;7&#93; . on_mm = _8_on_m;<br /> ram_wyj&#91;7&#93; . on_ss = _8_on_s;<br /> ram_wyj&#91;7&#93; . on_wy = _8_on_wy;<br /><br />     ram_wyj&#91;7&#93; . off_hh = _8_off_h;<br /> ram_wyj&#91;7&#93; . off_mm = _8_off_m;<br /> ram_wyj&#91;7&#93; . off_ss = _8_off_s;<br /> ram_wyj&#91;7&#93; . off_wy = _8_off_wy;<br /><br /> copy_ram_to_eem();<br /> beep(20);<br /><br />   }<br /><br />    if( 17 == cmd &amp;&amp; key_time == 0 ) {  // klawisz pilota w LEWO &lt;&lt;&lt;<br />    pozycja = 0;<br />    on_off = 0;<br />      beep(20);<br />   }<br /><br />// ******************************************************************************************************<br />break;<br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 6 wrz 2020, o 18:38</p><hr />
]]></content>
</entry>
</feed>