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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-07-28T18:20:43+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=7912&amp;mode</id>
<entry>
<author><name><![CDATA[matrix]]></name></author>
<updated>2014-07-28T18:20:43+01:00</updated>
<published>2014-07-28T18:20:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89276#p89276</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89276#p89276"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89276#p89276"><![CDATA[
Kiedyś napisałem zdaje się dwupoziomowe (a może więcej) menu które miało obsługiwać centralę do bramy wjazdowej. Minus jest taki że menu zajmuje kilka kb kodu. Na pewno nie zmieści się w atmedze 8. Napisane na atmegę 128 i sprawowało się znakomicie jako samo menu. Dalej nie pisałem bo mi się nie chciało.<br /><br />[syntax=basic4gl]'*************************************************************<br />'*********** Uniwersalny sterownik bramy wjazdowej ***********<br />'****************** AUTOR: Piotr Be***************************<br />'*************************************************************<br /><br />'$sim<br />$regfile = &quot;m8def.dat&quot;<br />$crystal = 8000000<br />'$prog &amp;HFF , &amp;HE4 , &amp;HDB , &amp;H00                             'fusy dla zegara 8MHz<br /><br />Config Lcd = 16 * 2<br />Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.0 , Rs = Portb.1<br /><br />Deflcdchar 0 , 32 , 4 , 2 , 31 , 2 , 4 , 32 , 32            'strzałka w prawo - 0<br />Deflcdchar 1 , 2 , 4 , 14 , 17 , 17 , 17 , 14 , 32          'litera ó - 1<br />Deflcdchar 2 , 32 , 8 , 10 , 12 , 8 , 25 , 6 , 32           'literka ł - 2<br />Deflcdchar 3 , 2 , 4 , 14 , 16 , 16 , 17 , 14 , 32          'literka ć - 3<br />Deflcdchar 4 , 32 , 2 , 4 , 14 , 16 , 14 , 1 , 30           'literka ś - 4<br />Deflcdchar 5 , 32 , 2 , 4 , 15 , 2 , 4 , 15 , 32            'literka ź - 5<br />Deflcdchar 6 , 32 , 2 , 4 , 22 , 25 , 17 , 17 , 32          'literka ń - 6<br />Deflcdchar 7 , 32 , 14 , 1 , 15 , 17 , 15 , 4 , 2           'literka ą - 7<br /><br />Cursor Off Noblink<br />Cls<br /><br /><br />Config Pinc.0 = Input<br />Config Pinc.1 = Input<br />Config Pinc.2 = Input<br />Config Pinc.3 = Input<br />Config Portb.7 = Output<br /><br />Config Adc = Single , Prescaler = Auto , Reference = Avcc<br />Start Adc<br /><br />Set Portb<br />Set Portc<br />'Set Portd<br /><br />W_gore Alias Pinc.1<br />Wykonaj Alias Pinc.2<br />W_dol Alias Pinc.3<br />Dioda Alias Portb.7<br />Obsluga Alias Pinc.0<br /><br />Dim Niepotrzebna_zmienna As Eram Byte At &amp;H00<br /><br />Dim Pozycja_menu As Byte<br />Dim Ust_fabryczne As Bit<br />Dim Zapisz As Bit<br /><br />Dim Jaka_brama As Byte<br />Dim Jaka_brama_eprom As Eram Byte<br /><br />Dim Jaka_logika As Byte<br />Dim Jaka_logika_eprom As Eram Byte<br /><br />Dim Czy_spowolnienia As Byte<br />Dim Czy_spowolnienia_eprom As Eram Byte<br /><br />Dim Czy_spowolnienia_po_kr As Byte<br />Dim Czy_spowolnienia_po_kr_eprom As Eram Byte<br /><br />Dim Czas_pracy_lewego As Byte<br />Dim Czas_pracy_lewego_eprom As Byte<br />Dim Czas_pracy_prawego As Byte<br />Dim Czas_pracy_prawego_eprom As Byte<br /><br />Dim Czy_furtka As Byte<br />Dim Czy_furtka_eprom As Eram Byte<br /><br />Dim Czy_opoznienia As Byte<br />Dim Czy_opoznienia_eprom As Eram Byte<br /><br />Dim Sila_lewego As Byte<br />Dim Sila_lewego_eprom As Eram Byte<br />Dim Sila_prawego As Byte<br />Dim Sila_prawego_eprom As Eram Byte<br /><br />Dim Czulosc_lewego As Byte<br />Dim Czulosc_lewego_eprom As Eram Byte<br />Dim Czulosc_prawego As Byte<br />Dim Czulosc_prawego_eprom As Eram Byte<br /><br />Dim Czy_foto1 As Byte<br />Dim Czy_foto1_eprom As Eram Byte<br /><br />Dim Zamk_po_foto1 As Byte<br />Dim Zamk_po_foto1_eprom As Byte<br /><br />Dim Czas_po_foto1 As Byte<br />Dim Czas_po_foto1_eprom As Byte<br /><br />Dim Fototest1 As Byte<br />Dim Fototest1_eprom As Eram Byte<br /><br />Dim Czy_foto2 As Byte<br />Dim Czy_foto2_eprom As Eram Byte<br /><br />Dim Fototest2 As Byte<br />Dim Fototest2_eprom As Eram Byte<br /><br />Dim Czy_kr As Byte<br />Dim Czy_kr_eprom As Eram Byte<br /><br />Dim Kr_moto1_ot As Byte                                     'krańcówka otwarcia motor 1<br />Dim Kr_moto1_ot_eprom As Eram Byte<br /><br />Dim Kr_moto1_za As Byte                                     'krańcówka zamknięcia motor 1<br />Dim Kr_moto1_za_eprom As Eram Byte<br /><br />Dim Kr_moto2_ot As Byte                                     'krańcówka otwarcia motor 2<br />Dim Kr_moto2_ot_eprm As Eram Byte<br /><br />Dim Kr_moto2_za As Byte                                     'krańcówka zamknięcia motor 2<br />Dim Kr_moto2_za_eprom As Eram Byte<br /><br />Dim Jaka_lampa As Byte<br />Dim Jaka_lampa_eprom As Eram Byte<br /><br />Dim Rodzaj_migania As Byte<br />Dim Rodzaj_migania_eprom As Eram Byte<br /><br />Dim Czy_elektrozamek As Byte<br />Dim Czy_elektrozamek_eprom As Eram Byte<br /><br />Dim Lampka_info As Byte<br />Dim Lampka_info_epro As Eram Byte<br /><br />Dim Zmienna_serwisowa As Word<br />Dim Zmienna_serwisowa_eprom As Eram Word<br /><br />Dim Zlicz_cykle As Single                                   'liczy ilość cykli otwarcia i zamknięcia bramy<br />Dim Zlicz_cykle_eprom As Eram Single                        'przechowuje wartość ilości cykli w pamięci eprom<br /><br />Ust_fabryczne = 0<br />Set Dioda<br /><br /><br /><br /><br />Gosub Procedura_odczytu<br /><br />Readeeprom Zlicz_cykle , Zlicz_cykle_eprom<br /><br /><br />If Obsluga = 0 Then Zlicz_cykle = 7300<br /><br />If Zlicz_cykle = 7300 Then<br />   Do<br />     Reset Dioda<br />     Home<br />     Lcd &quot;Konieczny serwis&quot;<br />     Locate 2 , 1<br />     Lcd &quot;tel. 883 *** **0&quot;<br />     Wait 1<br />     Cls<br />     Wait 1<br />   Loop<br />   End<br />End If<br /><br /><br />Do<br />If W_gore = 0 And Wykonaj = 1 And W_dol = 0 Then<br />   Waitms 200<br />   Gosub Menu<br />End If<br /><br /><br />Loop<br />End<br /><br /><br />Menu:<br /> Pozycja_menu = 1                                           'ustawia wskaźnik menu na pozycję pierwszą<br /> Home<br /> Lcd &quot;   Menu g&quot; ; Chr(2) ; Chr(1) ; &quot;wne  &quot;                'wyświetla napis MENU GŁÓWNE<br /> Bitwait W_gore , Set                                       'czeka na puszczenie przycisku UP<br /><br />  Do<br />    If W_gore = 0 Then                                      'jeśli nacisnę UP to<br />       Incr Pozycja_menu                                    'zwiększam wartość zmienne pozycja menu czyli poruszam się po menu w górę<br />    End If<br />    If W_dol = 0 Then                                       'jeśli jnacisnę przycisk DOWN to<br />       Decr Pozycja_menu                                    'zmniejszam wartość zmiennej pozycja menu czyli poruszam się w dół<br />    End If<br />       If Pozycja_menu &lt; 1 Then Pozycja_menu = 1            'zabezpieczam się przed wyjściem zmiennej poza ilość dostępnego menu<br />       If Pozycja_menu &gt; 18 Then Pozycja_menu = 18<br />       Waitms 200<br /><br />        Select Case Pozycja_menu<br />          Case 1:<br />            Home<br />            Lcd &quot;  Rodzaj bramy  &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Typ_bramy                              'skocz do podprogramu wybór typu bramy<br />            End If<br />          Case 2:<br />            Home<br />            Lcd &quot;     Logika     &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Logika                                 'skocz do podprogramu wyboru logiki<br />            End If<br />          Case 3:<br />            Home<br />            Lcd &quot;   Kra&quot; ; Chr(6) ; &quot;c&quot; ; Chr(1) ; &quot;wki    &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Krancowki                              'skocz do ustawiania krańcówek<br />            End If<br />          Case 4:<br />            Home<br />            Lcd &quot;     Foto 1     &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Foto_nr1                               'skocz do podprogramu ustawiania pierwszej linii fotokomorek<br />            End If<br />          Case 5:<br />            Home<br />            Lcd &quot;     Foto 2     &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Foto_nr2                               'skocz do podprogramu ustawiania drugiej linii fotokomorek<br />            End If<br />          Case 6:<br />            Home<br />            Lcd &quot;   Op&quot; ; Chr(1) ; Chr(5) ; &quot;nienia  &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Opoznienia                             'skocz do podprogramu ustawiania opóźnień<br />            End If<br />          Case 7:<br />            Home<br />            Lcd &quot;  Czasy pracy   &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Czasy_pracy                            'skocz do podprogramu ustawiania czasów pracy<br />            End If<br />          Case 8:<br />            Home<br />            Lcd &quot;     Furtka     &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Furtka                                 'skocz do podprogramu ustawiania furtki<br />            End If<br />          Case 9:<br />            Home<br />            Lcd &quot;      Si&quot; ; Chr(2) ; &quot;a      &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Sila                                   'skocz do podprogramu ustawiania sił<br />            End If<br />          Case 10:<br />            Home<br />            Lcd &quot;    Czu&quot; ; Chr(2) ; &quot;o&quot; ; Chr(4) ; Chr(3) ; &quot;     &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Czulosc                                'skocz do podprogramu ustawiania czułości amperometrycznej<br />            End If<br />          Case 11:<br />            Home<br />            Lcd &quot;  Spowolnienia  &quot;                          'skocz do podprogramu ustawiania spowolnień<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Spowolnienia<br />            End If<br />          Case 12:<br />            Home<br />            Lcd &quot;   Ust.lampki   &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Ustawienia_lampki                      'skocz do podprogramu ustawień lampki<br />            End If<br />          Case 13:<br />            Home<br />            Lcd &quot;  Elektrozamek  &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Elektro_zamek                          'skocz do podprogramu ustawień elektrozamka<br />            End If<br />          Case 14:<br />            Home<br />            Lcd &quot;Ust.lampki info.&quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Ustawienia_info                        'skocz do podprogramu ustawień lamki informacyjnej<br />            End If<br />          Case 15:<br />            Home<br />            Lcd &quot;   Data i czas  &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Ustawienia_czasu                       'skocz do podprogramu ustawień czasu<br />            End If<br />          Case 16:<br />            Home<br />            Lcd &quot;   Informacje   &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Informacje                             'skocz do podprogramu wyświetlania informacji o sterowniku<br />            End If<br />          Case 17:<br />            Home<br />            Lcd &quot; Ust.fabryczne  &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Fabryczne                              'skocz do podprogramu wyboru ustawień fabrycznych<br />               If Ust_fabryczne = 1 Then<br />                  Ust_fabryczne = 0<br />                  Cls<br />                  Exit Do<br />               End If<br />            End If<br />          Case 18:<br />            Home<br />            Lcd &quot;    Wyj&quot; ; Chr(4) ; &quot;cie     &quot;<br />            If Wykonaj = 0 Then<br />               Bitwait Wykonaj , Set<br />               Gosub Wyjscie                                'skocz do podprogramu wyboru wyjścia z ustawień<br />               Zapisz = 0<br />               Exit Do<br />            End If<br />        End Select<br />  Loop<br />Return<br /><br />Typ_bramy:<br />  Do<br />    If W_gore = 0 Or W_dol = 0 Then                         'jeśli wciskam w dół to wybieram poprzedni typ bramy<br />       Toggle Jaka_brama<br />       Waitms 200<br />    End If<br /><br />          If Jaka_brama &lt; 100 Then                          'jeśli wybrałem pierwszy typ bramy (1 skzrydłowa) i<br />              Jaka_brama = 1<br />             Locate 2 , 1<br />             Lcd &quot;  2 Skrzyd&quot; ; Chr(2) ; &quot;owa  &quot;<br />               If Wykonaj = 0 Then                          'jeśli nacisnę OK<br />                  Home<br />                  Lcd &quot;    Wybrano     &quot;                    'to wyświetl w pierwszej linii napis WYBRANO<br />                  Exit Do                                   'i wyjdź z podmenu<br />               End If<br />           Else<br />             Jaka_brama = 255<br />             Locate 2 , 1<br />             Lcd &quot;Przes./1 Skrzyd.&quot;<br />               If Wykonaj = 0 Then<br />                  Home<br />                  Lcd &quot;    Wybrano     &quot;<br />                  Exit Do<br />               End If<br />          End If<br />  Loop<br />  Gosub Czekacz                                             'podprogram zawiera wait 800<br />  Gosub Czyszczenie_drugiej_linii                           'podprogram zawiera wpisanie 10 pstychznaków w drugiej linii<br />  Bitwait Wykonaj , Set                                     'czekaj na puszczenie przycisku OK<br />  Waitms 100<br />Return<br /><br /><br />Logika:<br /><br />Return<br /><br /><br />Spowolnienia:<br />   Gosub Wyswietl_tak_nie<br />   Do<br />     If W_gore = 0 Or W_dol = 0 Then<br />        Toggle Czy_spowolnienia<br />        Waitms 200<br />     End If<br />     If Czy_spowolnienia = 0 Then<br />        Gosub Wyswietl_strzalke_nie<br />       Else<br />        Gosub Wyswietl_strzalke_tak<br />     End If<br />     If Wykonaj = 0 Then<br />        Locate 2 , 1<br />        Lcd &quot;    Wybrano     &quot;<br />        Gosub Czekacz<br />        Gosub Czyszczenie_drugiej_linii<br />     Exit Do<br />     End If<br />   Loop<br />   If Czy_spowolnienia = 255 Then<br />    If Czy_kr = 255 Then<br />     If Kr_moto1_ot = 255 Or Kr_moto1_za = 255 Or Kr_moto2_ot = 255 Or Kr_moto2_za = 0 Then<br />      Home<br />      Lcd &quot; Po kra&quot; ; Chr(6) ; &quot;c&quot; ; Chr(1) ; &quot;wkach &quot;<br />      Gosub Wyswietl_tak_nie<br />      Do<br />        If W_gore = 0 Or W_dol = 0 Then<br />           Toggle Czy_spowolnienia_po_kr<br />           Waitms 200<br />        End If<br />        If Czy_spowolnienia_po_kr = 0 Then<br />           Gosub Wyswietl_strzalke_nie<br />          Else<br />           Gosub Wyswietl_strzalke_tak<br />        End If<br />        If Wykonaj = 0 Then<br />           Locate 2 , 1<br />           Lcd &quot;    Wybrano     &quot;<br />           Gosub Czekacz<br />           Gosub Czyszczenie_drugiej_linii<br />           Exit Do<br />        End If<br />      Loop<br />     End If<br />    End If<br />   End If<br />Return<br /><br /><br />Czasy_pracy:<br /><br />Return<br /><br /><br />Furtka:<br />   Gosub Wyswietl_tak_nie<br />   Do<br />     If W_gore = 0 Or W_dol = 0 Then<br />        Toggle Czy_furtka<br />        Waitms 200<br />     End If<br />     If Czy_furtka = 0 Then<br />        Gosub Wyswietl_strzalke_nie<br />       Else<br />        Gosub Wyswietl_strzalke_tak<br />     End If<br />     If Wykonaj = 0 Then<br />        Locate 2 , 1<br />        Lcd &quot;    Wybrano     &quot;<br />        Gosub Czekacz<br />        Gosub Czyszczenie_drugiej_linii<br />     Exit Do<br />     End If<br />   Loop<br />Return<br /><br /><br />Opoznienia:<br />  If Czy_foto1 = 255 Then<br />   Home<br />   Lcd &quot; Zamk.po foto 1 &quot;<br />   Gosub Wyswietl_tak_nie<br />     Do<br />       If W_gore = 0 Or W_dol = 0 Then<br />          Toggle Zamk_po_foto1<br />          Waitms 200<br />       End If<br />       If Zamk_po_foto1 = 0 Then<br />          Gosub Wyswietl_strzalke_nie<br />         Else<br />          Gosub Wyswietl_strzalke_tak<br />       End If<br />       If Wykonaj = 0 And Zamk_po_foto1 = 0 Then<br />          Locate 2 , 1<br />          Lcd &quot;Zamk.po foto1 wy&quot;<br />          Gosub Czekacz<br />          Gosub Czyszczenie_drugiej_linii<br />          Exit Do<br />       End If<br />       If Wykonaj = 0 And Zamk_po_foto1 &gt; 0 Then<br />          Locate 2 , 1<br />          Lcd &quot;Zamk.po foto1 w&quot; ; ; Chr(2)<br />          Gosub Czekacz<br />          Gosub Czyszczenie_drugiej_linii<br />          Exit Do<br />       End If<br />     Loop<br /><br />       If Zamk_po_foto1 &gt; 0 Then<br />          Locate 2 , 1<br />          Lcd &quot;  Wybierz czas  &quot;<br />          Gosub Czekacz<br />          Gosub Czyszczenie_drugiej_linii<br />          Locate 2 , 1<br />          Lcd &quot;Czas=&quot;<br />          Do<br />            If W_gore = 0 Then<br />               Incr Czas_po_foto1<br />               Waitms 200<br />            End If<br />            If W_dol = 0 Then<br />               Decr Czas_po_foto1<br />               Waitms 200<br />            End If<br />            If Czas_po_foto1 &lt; 1 Then Czas_po_foto1 = 1<br />            If Czas_po_foto1 &gt; 50 Then Czas_po_foto1 = 50<br />            Locate 2 , 6<br />            Lcd Czas_po_foto1 ; &quot;sek.     &quot;<br />            If Wykonaj = 0 Then<br />               Locate 2 , 1<br />               Lcd &quot;Ustaw.czas=&quot; ; Czas_po_foto1 ; &quot;s  &quot;<br />               Gosub Czekacz<br />               Gosub Czyszczenie_drugiej_linii<br />               Exit Do<br />            End If<br />          Loop<br />       End If<br /><br />  End If<br />Return<br /><br /><br />Sila:<br /><br />Return<br /><br /><br />Czulosc:<br /><br />Return<br /><br /><br />Foto_nr1:<br />  Gosub Wyswietl_tak_nie                                    'skocz do podprogramu wyświetlania w dolnej linii napisu NIE     TAK<br />    Do<br />        If W_gore = 0 Or W_dol = 0 Then                     'jeśli nacisnę w górę lub w dół to<br />            Toggle Czy_foto1                                'zmień wartość zmiennej na przeciwną czyli 0&lt;=&gt;255<br />            Waitms 200<br />        End If<br /><br />        If Czy_foto1 = 0 Then                               'jeśli zmienna wyboru wł/wył foto1 = 0 czyli foto 1 wyłączone<br />           Gosub Wyswietl_strzalke_nie                      'wyświetl strzałkę na pozycji 2,1 a na pozycji 2,10 puste pole<br />          Else<br />           Gosub Wyswietl_strzalke_tak                      'w przeciwnym razie na pozycji 2,1 puste pole a na 2,10 strzałkę<br />        End If<br /><br />        If Wykonaj = 0 And Czy_foto1 = 0 Then               'jeśli foto1 wyłączone i nacisnę OK to<br />           Locate 2 , 1                                     'znajduje pozycję 2,1<br />           Lcd &quot;Foto 1 wy&quot; ; Chr(2) ; &quot;.     &quot;              'wyświetla napis Foto 1 wył<br />           Fototest1 = 0                                    'wyłącza fototest dla foto 1<br />           Exit Do                                          'i wychodzi każe opuścić pętlę<br />        End If<br />        If Wykonaj = 0 And Czy_foto1 &gt; 0 Then               'jeśli nacisnąłem OK i fototest włączony<br />           Locate 2 , 1                                     'znajduję pozycję 2,1<br />           Lcd &quot;Foto 1 w&quot; ; Chr(2) ; &quot;.     &quot;               'wyświetlam Foto 1 wł.<br />           Exit Do                                          'każę wyjść z pętli<br />        End If<br />    Loop<br />    Gosub Czekacz                                           'podprogram zawiera waitms 800<br />    Gosub Czyszczenie_drugiej_linii                         'podprogram wpisuje 16 pustych znaków w drugiej linii<br /><br />    If Czy_foto1 = 255 Then                                 'jeśli wcześniej włączone zostało foto 1 to<br />       Home<br />       Lcd &quot;Fototest foto 1 &quot;                               'wyświetl w pierwszej linii napis Fotottest foto 1<br />       Gosub Wyswietl_tak_nie                               'podprogram wyświetla w drugiej linii wyrazy NIE oraz TAK<br />         Do<br />           If W_gore = 0 Or W_dol = 0 Then                  'jeśli nacisnąłem przycisk UP lub DOWN to<br />              Toggle Fototest1                              'zmień wartość zmiennej fototest na przeciwny<br />              Waitms 200                                    'czekaj 200 ms<br />           End If<br />           If Fototest1 = 0 Then                            'jeśli wartość zmiennej fototest1 = 0 czyli fototest wyłączony<br />               Gosub Wyswietl_strzalke_nie                  'podprogram wywietla strzałkę na pozycji 2,1<br />              Else<br />               Gosub Wyswietl_strzalke_tak                  'w przeciwnym razie na pozycji 2,10<br />           End If<br />           If Wykonaj = 0 And Fototest1 = 0 Then            'jeśli nacisnięto OK i wybrano wyłączony fototest 1 to<br />              Locate 2 , 1<br />              Lcd &quot;  Fototest wy&quot; ; Chr(2) ; &quot;  &quot;           'wyświetl w dolnej linii że fototest 1 wyłączony<br />              Exit Do                                       'wyjdź z pętli<br />           End If<br />           If Wykonaj = 0 And Fototest1 &gt; 0 Then            'jeśli naciśnięto OK i fototest włączony to<br />              Locate 2 , 1<br />              Lcd &quot;  Fototest w&quot; ; Chr(2) ; &quot;   &quot;           'wyświetl napis że włączony<br />              Exit Do                                       'wyjdż z pętli<br />           End If<br />         Loop<br />    End If<br />    Gosub Czekacz                                           'podprogram zawiera waitms 800<br />    Gosub Czyszczenie_drugiej_linii                         'podprogram wpisuje w drugiej linii 16 pustych znaków<br />Return<br /><br /><br />Foto_nr2:<br />  Gosub Wyswietl_tak_nie                                    'skocz do podprogramu wyświetlania w dolnej linii napisu NIE     TAK<br />    Do<br />        If W_gore = 0 Or W_dol = 0 Then                     'jeśli nacisnę w górę lub w dół to<br />            Toggle Czy_foto2                                'zmień wartość zmiennej na przeciwną czyli 0&lt;=&gt;255<br />            Waitms 200<br />        End If<br /><br />        If Czy_foto2 = 0 Then                               'jeśli zmienna wyboru wł/wył foto1 = 0 czyli foto1 wyłączone<br />           Gosub Wyswietl_strzalke_nie<br />          Else<br />           Gosub Wyswietl_strzalke_tak<br />        End If<br /><br />        If Wykonaj = 0 And Czy_foto2 = 0 Then               'jeśli foto1 wyłączone 2 nacisnę OK to<br />           Locate 2 , 1<br />           Lcd &quot;Foto 2 wy&quot; ; Chr(2) ; &quot;.     &quot;<br />           Fototest2 = 0<br />           Exit Do<br />        End If<br />        If Wykonaj = 0 And Czy_foto2 &gt; 0 Then<br />           Locate 2 , 1<br />           Lcd &quot;Foto 2 w&quot; ; Chr(2) ; &quot;.     &quot;<br />           Exit Do<br />        End If<br />    Loop<br />    Gosub Czekacz<br />    Gosub Czyszczenie_drugiej_linii<br /><br />    If Czy_foto2 &gt; 0 Then<br />       Home<br />       Lcd &quot;Fototest foto 2 &quot;<br />       Gosub Wyswietl_tak_nie<br />         Do<br />           If W_gore = 0 Or W_dol = 0 Then<br />              Toggle Fototest2<br />              Waitms 200<br />           End If<br />           If Fototest2 = 0 Then<br />               Gosub Wyswietl_strzalke_nie<br />              Else<br />               Gosub Wyswietl_strzalke_tak<br />           End If<br />           If Wykonaj = 0 And Fototest2 = 0 Then<br />              Locate 2 , 1<br />              Lcd &quot;  Fototest wy&quot; ; Chr(2) ; &quot;  &quot;<br />              Exit Do<br />           End If<br />           If Wykonaj = 0 And Fototest2 &gt; 0 Then<br />              Locate 2 , 1<br />              Lcd &quot;  Fototest w&quot; ; Chr(2) ; &quot;   &quot;<br />              Exit Do<br />           End If<br />         Loop<br />    End If<br />    Gosub Czekacz<br />    Gosub Czyszczenie_drugiej_linii<br />Return<br /><br /><br />Krancowki:<br />   Gosub Wyswietl_tak_nie                                   'podprogra wyświetla w drugiej linii napisy NIE    TAK<br />     Do<br />       If W_gore = 0 Or W_dol = 0 Then                      'jesli naciskamy up lub down<br />          Toggle Czy_kr                                     'to zmieniamy na przemian wartość zmiennej<br />          Waitms 200<br />       End If<br />       If Czy_kr = 0 Then                                   'jeśli krańcowki wychcemy wyłączyć<br />          Gosub Wyswietl_strzalke_nie                       'to wyświetl strzałkę na pozycji 2,1<br />         Else<br />          Gosub Wyswietl_strzalke_tak                       'w przeciwnym razie na pozycji 2,10<br />       End If<br />       If Wykonaj = 0 And Czy_kr = 0 Then                   'jeśli wybrano brak krańcówek i wciśniemy ok to<br />          Kr_moto1_ot = 0                                   'wyłączamy wszystkie krańcówki<br />          Kr_moto1_za = 0<br />          Kr_moto2_ot = 0<br />          Kr_moto2_za = 0<br />          Locate 2 , 1<br />          Lcd &quot; Kra&quot; ; Chr(6) ; &quot;c&quot; ; Chr(1) ; &quot;wki wy&quot; ; Chr(2) ; &quot;. &quot;       'wyświetla info że krańcówki wyłączone<br />          Gosub Czekacz                                     'zawiera waitms 800<br />          Gosub Czyszczenie_drugiej_linii                   'wpisuje 16 znaków w drugiej linii<br />          Exit Do<br />       End If<br />       If Wykonaj = 0 And Czy_kr = 255 Then                 'jeśli krańcówki włączone<br />          Locate 2 , 1<br />          Lcd &quot; Kra&quot; ; Chr(6) ; &quot;c&quot; ; Chr(1) ; &quot;wki w&quot; ; Chr(2) ; &quot;. &quot;       'wyświetla informacje że są włączone<br />          Exit Do<br />       End If<br />     Loop<br />     Gosub Czekacz<br /><br />       If Czy_kr = 255 Then                                 'jeśli krańcówki zostały właczone to<br />              Home<br />              Lcd &quot; Kr.moto 1 ot.  &quot;<br />              Gosub Wyswietl_tak_nie                        'wyświetla wyrazy NIE    TAK w drugiej lini<br />              Do<br />                If W_gore = 0 Or W_dol = 0 Then             'jeśli naciskamy UP lu DOWN to<br />                   Toggle Kr_moto1_ot                       'zmieniamy wartość znmiennej na przeciwny<br />                   Waitms 200<br />                 End If<br />                If Kr_moto1_ot = 0 Then<br />                    Gosub Wyswietl_strzalke_nie             'wyświetla strzałkę na pozycji 2,1<br />                   Else<br />                    Gosub Wyswietl_strzalke_tak             'wyświetla srzałkę na pozycji 2,10<br />                End If<br />                If Wykonaj = 0 And Kr_moto1_ot = 0 Then<br />                   Gosub Wyswietl_kr_wyl<br />                   Exit Do<br />                End If<br />                If Wykonaj = 0 And Kr_moto1_ot = 255 Then<br />                   Gosub Wyswietl_kr_wl<br />                   Exit Do<br />                End If<br />              Loop<br />              Gosub Czekacz<br /><br /><br />              Home<br />              Lcd &quot; Kr.moto 1 za.  &quot;<br />              Gosub Wyswietl_tak_nie<br />              Do<br />                If W_gore = 0 Or W_dol = 0 Then<br />                   Toggle Kr_moto1_za<br />                   Waitms 200<br />                End If<br />                If Kr_moto1_za = 0 Then<br />                    Gosub Wyswietl_strzalke_nie<br />                   Else<br />                    Gosub Wyswietl_strzalke_tak<br />                End If<br />                If Wykonaj = 0 And Kr_moto1_za = 0 Then<br />                   Gosub Wyswietl_kr_wyl<br />                   Exit Do<br />                End If<br />                If Wykonaj = 0 And Kr_moto1_za = 255 Then<br />                   Gosub Wyswietl_kr_wl<br />                   Exit Do<br />                End If<br />              Loop<br />              Gosub Czekacz<br /><br />              Home<br />              Lcd &quot; Kr.moto 2 ot.  &quot;<br />              Gosub Wyswietl_tak_nie<br />              Do<br />                If W_gore = 0 Or W_dol = 0 Then<br />                   Toggle Kr_moto2_ot<br />                   Waitms 200<br />                End If<br />                If Kr_moto2_ot = 0 Then<br />                    Gosub Wyswietl_strzalke_nie<br />                   Else<br />                    Gosub Wyswietl_strzalke_tak<br />                End If<br />                If Wykonaj = 0 And Kr_moto2_ot = 0 Then<br />                   Gosub Wyswietl_kr_wyl<br />                   Exit Do<br />                End If<br />                If Wykonaj = 0 And Kr_moto2_ot = 255 Then<br />                   Gosub Wyswietl_kr_wl<br />                   Exit Do<br />                End If<br />              Loop<br />              Gosub Czekacz<br /><br />              Home<br />              Lcd &quot; Kr.moto 2 za.  &quot;<br />              Gosub Wyswietl_tak_nie<br />              Do<br />                If W_gore = 0 Or W_dol = 0 Then<br />                   Toggle Kr_moto2_za<br />                   Waitms 200<br />                End If<br />                If Kr_moto2_za = 0 Then<br />                    Gosub Wyswietl_strzalke_nie<br />                   Else<br />                    Gosub Wyswietl_strzalke_tak<br />                End If<br />                If Wykonaj = 0 And Kr_moto2_za = 0 Then<br />                   Gosub Wyswietl_kr_wyl<br />                   Exit Do<br />                End If<br />                If Wykonaj = 0 And Kr_moto2_za = 255 Then<br />                   Gosub Wyswietl_kr_wl<br />                   Exit Do<br />                End If<br />              Loop<br /><br />       End If<br />       Gosub Czekacz<br />       Gosub Czyszczenie_drugiej_linii<br />       If Kr_moto1_ot = 0 And Kr_moto1_za = 0 And Kr_moto2_ot = 0 And Kr_moto2_za = 0 Then<br />          Czy_kr = 0                                        'jeśli wszystkie krańcówki wybraliśmy na nie to wyłącza krańcówki ogólnie<br />          Czy_spowolnienia_po_kr = 0<br />       End If<br /><br />Return<br /><br /><br />Ustawienia_lampki:<br />  Do<br />   If W_gore = 0 Or W_dol = 0 Then                          'jeśli naciskamu UP lub DOWN to zmieniamy rodzaj lampki<br />      Toggle Jaka_lampa                                     'z przerywaczem lub bez<br />      Waitms 200<br />   End If<br />   Locate 2 , 1<br />   If Jaka_lampa = 0 Then<br />      Lcd &quot; Z przerywaczem &quot;<br />     Else<br />      Lcd &quot; Bez przerywacza&quot;<br />   End If<br />   Home<br />   If Wykonaj = 0 Then<br />      Lcd &quot;    Wybrano     &quot;<br />      Exit Do<br />   End If<br />  Loop<br /><br />  If Jaka_lampa = 255 Then                                  'jeśli lampka jest bez przerywacza to<br />    Gosub Czekacz<br />    Home<br />    Do<br />     Lcd &quot; Rodzaj migania &quot;                                 'wybieramy rodzaj migania<br />     If W_gore = 0 Or W_dol = 0 Then<br />        Toggle Rodzaj_migania<br />        Waitms 200<br />     End If<br />     Locate 2 , 1<br />     If Rodzaj_migania = 0 Then<br />        Lcd &quot;Otwiera=Zamyka  &quot;                              'jednakowe miganie przy zamykaniu i otwieraniu<br />       Else<br />        Lcd &quot;Otwiera&lt;&gt;Zamyka &quot;                              'różne miganie przy zamykaniu i otwieraniu<br />     End If<br />     If Wykonaj = 0 Then<br />        Home<br />        Lcd &quot;    Wybrano     &quot;<br />        Exit Do<br />     End If<br />    Loop<br />  End If<br />Gosub Czekacz<br />Gosub Czyszczenie_drugiej_linii<br />Return<br /><br /><br />Elektro_zamek:<br />   Gosub Wyswietl_tak_nie<br />   Do<br />     If W_gore = 0 Or W_dol = 0 Then<br />        Toggle Czy_elektrozamek<br />        Waitms 200<br />     End If<br />     If Czy_elektrozamek = 0 Then<br />        Gosub Wyswietl_strzalke_nie<br />       Else<br />        Gosub Wyswietl_strzalke_tak<br />     End If<br />     If Wykonaj = 0 Then<br />        Locate 2 , 1<br />        Lcd &quot;    Wybrano     &quot;<br />        Gosub Czekacz<br />        Gosub Czyszczenie_drugiej_linii<br />     Exit Do<br />     End If<br />   Loop<br />Return<br /><br /><br />Ustawienia_info:<br /><br />Return<br /><br /><br />Ustawienia_czasu:<br /><br />Return<br /><br /><br />Informacje:                                                 'wyświetla informacje o sterowniku<br />  Locate 1 , 1<br />  Lcd &quot;   Producent    &quot;<br />  Locate 2 , 1<br />  Lcd &quot;Piotr &quot;<br />  Wait 1<br />  Cls<br /><br />  Locate 1 , 1<br />  Lcd &quot;Piotr &quot;<br />  Locate 2 , 1<br />  Lcd &quot;tel. 883 *** **0&quot;<br />  Wait 1<br />  Cls<br /><br />  Locate 1 , 1<br />  Lcd &quot; Orogramowanie  &quot;<br />  Locate 2 , 1<br />  Lcd &quot;v1,1 beta       &quot;<br />  Wait 1<br />  Cls<br /><br />  Locate 1 , 1<br />  Lcd &quot;  Wykonano dla  &quot;<br />  Locate 2 , 1<br />  Lcd &quot;Peiter Automatic&quot;<br />  Wait 1<br />  Cls<br />Return<br /><br /><br />Fabryczne:                                                  'podprogram ustawień fabrycznych<br />  Gosub Wyswietl_tak_nie<br />     Do<br />       If W_gore = 0 Or W_dol = 0 Then<br />          Toggle Ust_fabryczne<br />          Waitms 200<br />       End If<br />       If Ust_fabryczne = 0 Then<br />          Gosub Wyswietl_strzalke_nie<br />         Else<br />          Gosub Wyswietl_strzalke_tak<br />       End If<br />       If Wykonaj = 0 And Ust_fabryczne = 0 Then<br />          Exit Do<br />       End If<br />       If Wykonaj = 0 And Ust_fabryczne = 1 Then<br />          Locate 2 , 1<br />          Lcd &quot;  Przywr&quot; ; Chr(1) ; &quot;cono   &quot;<br />          Gosub Czekacz<br />          Gosub Zapisane_zmienne_fabryczne<br />          Gosub Procedura_zapisu<br />          Exit Do<br />       End If<br />     Loop<br />Gosub Czyszczenie_drugiej_linii<br />Return<br /><br /><br />Wyjscie:<br />  Home<br />  Lcd &quot;    Zapisa&quot; ; Chr(3) ; &quot;?    &quot;<br />  Gosub Wyswietl_tak_nie<br />    Do<br />      If W_gore = 0 Or W_dol = 0 Then<br />         Toggle Zapisz<br />         Waitms 200<br />      End If<br />      If Zapisz = 0 Then<br />         Gosub Wyswietl_strzalke_nie<br />        Else<br />         Gosub Wyswietl_strzalke_tak<br />      End If<br />      If Zapisz = 0 And Wykonaj = 0 Then<br />         Gosub Procedura_odczytu<br />         Cls<br />         Exit Do<br />      End If<br />      If Wykonaj = 0 And Zapisz = 1 Then<br />         Gosub Czyszczenie_drugiej_linii<br />         Home<br />         Lcd &quot; Dane zapisano  &quot;<br />         Gosub Czekacz<br />         Gosub Procedura_zapisu<br />         Cls<br />         Exit Do<br />      End If<br /><br /><br />    Loop<br />Return<br /><br />Sprawdz_bledy:<br /><br />Return<br /><br /><br />Liczba_cykli:<br /><br /><br />   Writeeeprom Zlicz_cykle , Zlicz_cykle_eprom<br />Return<br /><br />Zapis_liczby_cykli:<br /><br />Return<br /><br />Wyswietl_tak_nie:<br />   Locate 2 , 1<br />   Lcd &quot;  Nie      Tak  &quot;<br />Return<br /><br />Wyswietl_kr_wl:<br />   Locate 2 , 1<br />   Lcd &quot; Kra&quot; ; Chr(6) ; &quot;c&quot; ; Chr(1) ; &quot;wka w&quot; ; Chr(2) ; &quot;. &quot;       'wyświetlamy napis że krańcówki wyłączone<br />Return<br /><br />Wyswietl_kr_wyl:<br />   Locate 2 , 1<br />   Lcd &quot; Kra&quot; ; Chr(6) ; &quot;c&quot; ; Chr(1) ; &quot;wka wy&quot; ; Chr(2) ; &quot;. &quot;       'wyświetlamy napis że krańcówki wyłączone<br />Return<br /><br />Procedura_zapisu:<br />                 Reset Dioda<br />                 Gosub Czekacz<br />   Writeeeprom Jaka_brama , Jaka_brama_eprom<br />   Writeeeprom Jaka_logika , Jaka_logika_eprom<br />   Writeeeprom Czy_spowolnienia , Czy_spowolnienia_eprom<br /><br />   Writeeeprom Czy_furtka , Czy_furtka_eprom<br />   Writeeeprom Czy_foto1 , Czy_foto1_eprom<br />   Writeeeprom Fototest1 , Fototest1_eprom<br />   Writeeeprom Czy_foto2 , Czy_foto2_eprom<br />   Writeeeprom Fototest2 , Fototest2_eprom<br />   Writeeeprom Zamk_po_foto1 , Zamk_po_foto1_eprom<br />   Writeeeprom Czas_po_foto1 , Czas_po_foto1_eprom<br />   Writeeeprom Czy_kr , Czy_kr_eprom<br />   Writeeeprom Kr_moto1_ot , Kr_moto1_ot_eprom<br />   Writeeeprom Kr_moto1_za , Kr_moto1_za_eprom<br />   Writeeeprom Kr_moto2_ot , Kr_moto2_ot_eprm<br />   Writeeeprom Kr_moto2_za , Kr_moto2_za_eprom<br />   Writeeeprom Jaka_lampa , Jaka_lampa_eprom<br />   Writeeeprom Rodzaj_migania , Rodzaj_migania_eprom<br />   Writeeeprom Czy_elektrozamek , Czy_elektrozamek_eprom<br />                 Set Dioda<br /><br />Return<br /><br />Procedura_odczytu:<br />   Readeeprom Jaka_brama , Jaka_brama_eprom<br />   Readeeprom Jaka_logika , Jaka_logika_eprom<br />   Readeeprom Czy_spowolnienia , Czy_spowolnienia_eprom<br /><br />   Readeeprom Czy_furtka , Czy_furtka_eprom<br />   Readeeprom Czy_foto1 , Czy_foto1_eprom<br />   Readeeprom Fototest1 , Fototest1_eprom<br />   Readeeprom Czy_foto2 , Czy_foto2_eprom<br />   Readeeprom Fototest2 , Fototest2_eprom<br />   Readeeprom Zamk_po_foto1 , Zamk_po_foto1_eprom<br />   Readeeprom Czas_po_foto1 , Czas_po_foto1_eprom<br />   Readeeprom Czy_kr , Czy_kr_eprom<br />   Readeeprom Kr_moto1_ot , Kr_moto1_ot_eprom<br />   Readeeprom Kr_moto1_za , Kr_moto1_za_eprom<br />   Readeeprom Kr_moto2_ot , Kr_moto2_ot_eprm<br />   Readeeprom Kr_moto2_za , Kr_moto2_za_eprom<br />   Readeeprom Jaka_lampa , Jaka_lampa_eprom<br />   Readeeprom Rodzaj_migania , Rodzaj_migania_eprom<br />   Readeeprom Czy_elektrozamek , Czy_elektrozamek_eprom<br /><br />Return<br /><br />Czyszczenie_drugiej_linii:<br />  'Waitms 800<br />  Locate 2 , 1<br />  Lcd &quot;                &quot;<br />Return<br /><br />Wyswietl_strzalke_nie:<br />  Locate 2 , 1<br />  Lcd Chr(0)<br />  Locate 2 , 10<br />  Lcd &quot; &quot;<br />Return<br /><br />Wyswietl_strzalke_tak:<br />  Locate 2 , 1<br />  Lcd &quot; &quot;<br />  Locate 2 , 10<br />  Lcd Chr(0)<br />Return<br /><br />Czekacz:<br />  Waitms 800<br />Return<br /><br />Zapisane_zmienne_fabryczne:<br /><br />              '************************************************************************************<br />              '*** ustawienia fabryczne zmiennych *************************************************<br />              '************************************************************************************<br /><br />                Jaka_brama = 1                              'brama ustawiona na 2 skrzydłową<br />                Jaka_logika = 1                             'logika ustawiona na krok po kroku<br />                Czy_spowolnienia = 0                        'spowolnienia wyłączone<br />                Czy_spowolnienia_po_kr = 0                  'wyłaczone<br />                Czy_furtka = 0                              'furtka domyślnie wyłączona<br />                Czy_foto1 = 255                             'foto 1 włączone<br />                Fototest1 = 0                               'fototest1 wyłączony<br />                Czy_foto2 = 0                               'foto 2 wyłączone<br />                Fototest2 = 0                               'fototest 2 wyłączony<br />                Zamk_po_foto1 = 0<br />                Czas_po_foto1 = 4<br />                Czy_kr = 0                                  'krańcówki wyłaczone<br />                Kr_moto1_ot = 0                             'Krańcówka Silnika 1 Na Otwarciu Wyłaczona<br />                Kr_moto1_za = 0                             'krańcówka silnika 1 na zamknięciu wyłaczona<br />                Kr_moto2_ot = 0                             'krańcówka silnika 2 na otwarciu wyłączona<br />                Kr_moto2_za = 0                             'krańcówka silnika 2 na zamknięciu wyłaczona<br />                Jaka_lampa = 0                              'lamka z przerywaczem<br />                Rodzaj_migania = 0                          'rodzaj migania jednakowy da zamykania i otwierania<br />                Czy_elektrozamek = 0                        'elektrozamek wyłączony<br />Return[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=689">matrix</a> — 28 lip 2014, o 18:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slawek3000]]></name></author>
<updated>2014-07-28T17:20:57+01:00</updated>
<published>2014-07-28T17:20:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89266#p89266</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89266#p89266"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89266#p89266"><![CDATA[
Hmm... a może kolega by zrobił video tutoriala i  rzucił na forum <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=988">slawek3000</a> — 28 lip 2014, o 17:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slawek3000]]></name></author>
<updated>2014-07-28T04:44:49+01:00</updated>
<published>2014-07-28T04:44:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89208#p89208</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89208#p89208"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89208#p89208"><![CDATA[
A jak tu dodać wyświetlacz , procesor , klawisze do obsługi itd... ten program też widziałem wcześniej ,tylko że kod wynikowy generuje jakiś dziwny<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=988">slawek3000</a> — 28 lip 2014, o 04:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2014-07-27T20:41:34+01:00</updated>
<published>2014-07-27T20:41:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89178#p89178</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89178#p89178"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89178#p89178"><![CDATA[
Panowie do tego jest gotowe oprogramowanie wystarczy poczytać na forum MCS electronics <br /><a href="http://vimeo.com/25921689"  class="postlink">http://vimeo.com/25921689</a><br /><br />Wiki do programu:<br /><a href="http://mat.midlight.eu/wiki/index.php/Simple_LCD_Menu_Main_Page#Video_Demo"  class="postlink">http://mat.midlight.eu/wiki/index.php/Simple_LCD_Menu_Main_Page#Video_Demo</a><br /><br />link do forum z opisem:<br /><a href="http://www.mcselec.com/index2.php?option=com_forum&amp;Itemid=59&amp;page=viewtopic&amp;t=9883"  class="postlink">http://www.mcselec.com/index2.php?option=com_forum&amp;Itemid=59&amp;page=viewtopic&amp;t=9883</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 27 lip 2014, o 20:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slawek3000]]></name></author>
<updated>2014-07-27T20:04:08+01:00</updated>
<published>2014-07-27T20:04:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89168#p89168</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89168#p89168"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89168#p89168"><![CDATA[
w zupełności wystarczy jak na pisałem wyżej  ... nazwy zmiennych i typ mogą być dowolne wyświetlacz 16x4 , inicjowanie wyświetlaczy , procesorów to raczej umie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> <br />Dziękuje z góry za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=988">slawek3000</a> — 27 lip 2014, o 20:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matrix]]></name></author>
<updated>2014-07-27T19:46:43+01:00</updated>
<published>2014-07-27T19:46:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89165#p89165</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89165#p89165"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89165#p89165"><![CDATA[
Tak jak napisał kolega wyżej, ile pozycji menu głónego ? Ile pozycji poszczególnych menu ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=689">matrix</a> — 27 lip 2014, o 19:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slawek3000]]></name></author>
<updated>2014-07-27T19:41:33+01:00</updated>
<published>2014-07-27T19:41:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89163#p89163</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89163#p89163"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89163#p89163"><![CDATA[
w menu głównym 5 pozycji<br />w podmenu również 5 pozycji<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=988">slawek3000</a> — 27 lip 2014, o 19:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matrix]]></name></author>
<updated>2014-07-27T19:09:47+01:00</updated>
<published>2014-07-27T19:09:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89157#p89157</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89157#p89157"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89157#p89157"><![CDATA[
Zrobienie czegoś takiego według mnie wymaga świeżego podejścia do tematu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=689">matrix</a> — 27 lip 2014, o 19:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slawek3000]]></name></author>
<updated>2014-07-27T19:04:04+01:00</updated>
<published>2014-07-27T19:04:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89155#p89155</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89155#p89155"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=89155#p89155"><![CDATA[
No ok , ale jak zrobić np. menu 2.2 ;2.3;2.4 ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=988">slawek3000</a> — 27 lip 2014, o 19:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slawek3000]]></name></author>
<updated>2014-07-26T12:04:41+01:00</updated>
<published>2014-07-26T12:04:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=88950#p88950</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=88950#p88950"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=88950#p88950"><![CDATA[
ok i co dalej ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=988">slawek3000</a> — 26 lip 2014, o 12:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matrix]]></name></author>
<updated>2014-07-26T09:15:28+01:00</updated>
<published>2014-07-26T09:15:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=88936#p88936</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=88936#p88936"/>
<title type="html"><![CDATA[Re: Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=88936#p88936"><![CDATA[
Zacząć trzeba od tego że menu napisane jest nieoptymalnie. Na ten przykład po co napisane jest:<br />[syntax=basic4gl]Tast2:<br /> If Menu &gt; 1 Then                                           'Verhindert ausschweifung von  Startscreen<br />  If Menu &lt; 100 Then                                        'Verhindert ausschweifung in Untermenü &quot;Menupunkt x.1&quot;<br />   If Menu &lt; 15 Then                                        'Verhindert hochzählen &gt; 15 ; muss angepasst werden<br />    Incr Menu<br />    Cls[/syntax]<br /><br />Przecież to samo można osiągnąć pisząc:<br />[syntax=basic4gl]Tast2:<br />If Menu &gt;1 and Menu &lt; 15 then<br />    Incr Menu<br />    Cls[/syntax]<br /><br />3 Linie zastąpione jedną. Gdyby coś było pomiędzy ifami to te trzy linie miały by rację bytu a tak są zupełnie zbędne i można je zastąpić jedną.<br /><br />Do tego po co w każdym menu to locate 2,1 ? Jakby to przemyśleć to można spokojnie zastąpić to jedną linią.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=689">matrix</a> — 26 lip 2014, o 09:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slawek3000]]></name></author>
<updated>2014-07-26T12:15:49+01:00</updated>
<published>2014-07-26T05:46:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=88932#p88932</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=88932#p88932"/>
<title type="html"><![CDATA[Menu jak rozbudować]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7912&amp;p=88932#p88932"><![CDATA[
Witam,<br />znalazłem taki kod w necie [syntax=basic4gl]'-----------------------------------------------------------------------------<br />'-----------------------------------------------------------------------------<br />$regfile = &quot;m644pdef.dat&quot;                                   ' specify the used micro<br />$crystal = 16000000<br />$baud = 9600<br />$hwstack = 64<br />$swstack = 64<br />$framesize = 64<br />'-----------------------------------------------------------------<br />'konfiguracja wyświetlacza<br />Config Lcd = 16 * 2<br />Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2<br />Initlcd<br />Cls<br />Cursor Off<br /><br />Dim Menu As Integer                                         'Sprungadresse<br /><br />Enable Interrupts<br />'-----------------------------------------------------------------------------<br />'hier bekommen die Ports einen selbst ernannten Namen. Meistens aus der<br />'Zeichnung entnommen dann hat man eine gute Wiedererkennung.<br />'Außerdem werden die Eigenschalten der Ports bestimmt (In/Ou)<br />S1 Alias Pind.3 : Ddrd.3 = 0 : Portd.3 = 1                  'Taste &#91;S&#93; (Eingang)<br />S2 Alias Pind.2 : Ddrd.2 = 0 : Portd.2 = 1                  'Taste &#91;2&#93; (Eingang)<br />S3 Alias Pind.1 : Ddrd.1 = 0 : Portd.1 = 1                  'Taste &#91;3&#93; (Eingang)<br />S4 Alias Pind.0 : Ddrd.0 = 0 : Portd.0 = 1                  'Taste &#91;R&#93; (Eingang)<br /><br />'-------------------nur Startbedingung testen und ausgeben--------------------<br /><br />Menu = 1<br /><br />'----------------------------Hauptroutine-------------------------------------<br /><br />Do<br /><br />  'Tasterabfrage mit Entprellung durch &quot;Debounce&quot;<br />  Debounce S1 , 0 , Tast1 , Sub                             'S1 &#91;&quot;S&quot;&#93; (Menu)<br />  Debounce S2 , 0 , Tast2 , Sub                             'S2 &#91;&quot;2&quot;&#93; (Hoch)<br />  Debounce S3 , 0 , Tast3 , Sub                             'S3 &#91;&quot;3&quot;&#93; (Runter)<br />  Debounce S4 , 0 , Tast4 , Sub                             'S4 &#91;&quot;R&quot;&#93; (Zurück)<br /><br />  If Menu = 1 Then<br />    Locate 1 , 1<br />    Lcd &quot;  Beispielmenu  &quot;<br />    Locate 2 , 1<br />    Lcd &quot;  Version 1.00  &quot;<br />  End If<br /><br /><br />'-------------------------Hauptmenu-------------------------------------------<br /><br />  If Menu = 10 Then                                         'Menupunkt 1      'Variablen Abfrage von Menu = x<br />    Gosub Menu10<br />  End If<br /><br />  If Menu = 11 Then                                         'Menupunkt 2<br />     Gosub Menu11<br />  End If<br /><br />  If Menu = 12 Then                                         'Menupunkt 3<br />    Gosub Menu12<br />  End If<br /><br />  If Menu = 13 Then                                         'Menupunkt 4<br />    Gosub Menu13<br />  End If<br /><br />  If Menu = 14 Then                                         'Menupunkt 5<br />    Gosub Menu14<br />  End If<br /><br />  If Menu = 15 Then                                         'Menupunkt 6<br />    Gosub Menu15<br />  End If<br /><br />'----------------------------Untermenu----------------------------------------<br /><br />  If Menu = 100 Then                                        'Menupunkt 1.1<br />   Gosub Menu100<br />  End If<br /><br />  If Menu = 110 Then                                        'Menupunkt 2.1<br />   Gosub Menu110<br />  End If<br /><br />  If Menu = 120 Then                                        'Menupunkt 3.1<br />   Gosub Menu120<br />  End If<br /><br />  If Menu = 130 Then                                        'Menupunkt 4.1<br />   Gosub Menu130<br />  End If<br /><br />  If Menu = 140 Then                                        'Menupunkt 5.1<br />   Gosub Menu140<br />  End If<br /><br />  If Menu = 150 Then                                        'Menupunkt 6.1<br />   Gosub Menu150<br />  End If<br /><br /><br /><br />Loop<br />'---------------------Ende der Hauptroutine-----------------------------------<br /><br /><br />'-----------------------------------------------------------------------------<br />'-----------------------------Tasterroutinen----------------------------------<br />Tast1:<br />  Menu = Menu * 10                                          'Menu wird um Faktor 10 erhöht<br />  'Wenn Menu größer als 150 wird Menu um Faktor 10 dividiert<br />  If Menu &gt; 150 Then                                        'Menu = &quot;150&quot; muss angepasst werden!<br />   Menu = Menu / 10<br />  End If<br />  Cls                                                       'Display wird gecleart<br />Return<br /><br />Tast2:<br /> If Menu &gt; 1 Then                                           'Verhindert ausschweifung von  Startscreen<br />  If Menu &lt; 100 Then                                        'Verhindert ausschweifung in Untermenü &quot;Menupunkt x.1&quot;<br />   If Menu &lt; 15 Then                                        'Verhindert hochzählen &gt; 15 ; muss angepasst werden<br />    Incr Menu<br />    Cls<br />   End If<br />  End If<br /> End If<br />Return<br /><br />Tast3:<br /> If Menu &gt; 1 Then<br />  If Menu &gt; 10 Then<br />   If Menu &lt; 100 Then<br />    Decr Menu<br />    Cls<br />   End If<br />  End If<br /> End If<br />Return<br /><br />Tast4:<br /> If Menu &gt; 1 Then                                           'Verhindert Fehlfunktion Menu = 1 / 10<br />  Menu = Menu / 10<br />  Cls<br /> End If<br />Return<br /><br />'-----------------------------------------------------------------------------<br />'----------------------------Menupunkte---------------------------------------<br /><br /><br />'----------------------------Hauptmenu----------------------------------------<br /><br /><br />Menu10:                                                     'gosub Menu10<br />   Locate 2 , 1                                             'Springt in 1. Zeile an 1. Stelle des Display<br />   Lcd &quot;Menupunkt 1&quot;                                        'Schreibt &quot;Inhalt&quot; auf Display; Variablenausgabe ohne &quot; &quot;<br />Return<br /><br />Menu11:<br />   Locate 2 , 1<br />   Lcd &quot;Menupunkt 2&quot;<br />Return<br /><br />Menu12:<br />   Locate 2 , 1<br />   Lcd &quot;Menupunkt 3&quot;<br />Return<br /><br />Menu13:<br />   Locate 2 , 1<br />   Lcd &quot;Menupunkt 4&quot;<br />Return<br /><br />Menu14:<br />   Locate 2 , 1<br />   Lcd &quot;Menupunkt 5&quot;<br />Return<br /><br />Menu15:<br />   Locate 2 , 1<br />   Lcd &quot;Menupunkt 6&quot;<br />Return<br /><br />'----------------------------Untermenu----------------------------------------<br /><br />Menu100:<br /> Locate 2 , 1<br /> Lcd &quot;Menupunkt 1.1&quot;<br />Return<br /><br />Menu110:<br /> Locate 2 , 1<br /> Lcd &quot;Menupunkt 2.1&quot;<br />Return<br /><br />Menu120:<br /> Locate 2 , 1<br /> Lcd &quot;Menupunkt 3.1&quot;<br />Return<br /><br />Menu130:<br /> Locate 2 , 1<br /> Lcd &quot;Menupunkt 4.1&quot;<br />Return<br /><br />Menu140:<br /> Locate 2 , 1<br /> Lcd &quot;Menupunkt 5.1&quot;<br />Return<br /><br />Menu150:<br /> Locate 2 , 1<br /> Lcd &quot;Menupunkt 6.1&quot;<br />Return<br /><br />'-----------------------------------------------------------------------------<br />'-------------------------Programmende----------------------------------------<br />'-----------------------------------------------------------------------------[/syntax]<br /><br /><br />chciałbym go bardziej rozbudować tzn.np mamy Menupunkt 1 potem wchodzimy do  Menupunkt 1.1 a mnie potrzeba dalej Menupunkt 1.2, Menupunkt 1.3 itd.   jak to zrobić ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=988">slawek3000</a> — 26 lip 2014, o 05:46</p><hr />
]]></content>
</entry>
</feed>