logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega32][bascom] sterownik pieca co

wojno 12 Wrz 2008 13:08 8230 7
  • #1 5528284
    wojno
    Poziom 12  
    Chciałbym w Bascomie zrobić menu
    01 Pomiary
    02 Nastawa T1
    03 Nastawa T2
    04 Nastawa T3

    Mam 4 przyciski SW1, SW2, SW3, SW4

    1) Naciskając klawisz SW1 będzie się wyświetlało po kolei menu od 01 do 04 i tak w kółko.

    2) Chce zmienić nastawy w menu 02. Ustawiam klawiszem SW1 na menu 02 i klikam SW4 żeby wprowadzić dane. Po ponownym naciśnięciu SW4 dane zostaną zapisane i mogę przejść do następnego menu klawiszem SW1

    Jak zrobić takie menu?
  • #2 5529663
    august_a
    Poziom 21  
    Najlepiej, zacząć pisać, testować itd... Gotowca nie dostaniesz.
    Pzdr.
    A.
  • #3 5529676
    janek1815
    Poziom 38  
    Zapoznaj sie z poleceniem case, Select Case
  • #4 5529747
    HIOB
    Poziom 17  
    Witam,

    Polecam temat Link

    Pozdrawiam,
    Hiob.
  • #5 5537506
    wojno
    Poziom 12  
    Witam

    kod
    Dim Nr_menu As Byte , Klucz As Bit 
    Nr_menu = 0 
    Do 
       Cls 
       Lcd Lookupstr(nr_menu , D_menu) 
       On Nr_menu Gosub Menu1 , Menu2 , Menu3       'a tak możesz dla każdego menu , 
                                                     ' wywołać procedurkę 
       Set Klucz 
       While Klucz = 1 
          Debounce Pinb.0 , 0 , Zmiana , Sub 
       Wend 
    Loop 
    Zmiana: 
       Incr Nr_menu 
       If Nr_menu = 3 Then Nr_menu = 0 
       Reset Klucz 
    Return 
    Menu1: 
    Return 
    Menu2: 
    Return 
    Menu3: 
    Return 
    
    D_menu: 
    Data "Pierwsze menu" , "Drugie menu" , "Trzecie menu" 
    


    działa fajnie tylko ze wchodzi on odrazu do podmenu, a w mojej koncepcji musze dopiero chciec wejsc poprzez kliknecie na klawisz i wyjsc z tego podmenu jak klikne inny.
  • #6 5538626
    loodvis
    Poziom 14  
    Na przykład jak ja rozwiązałem menu
    tylko że ma 3 przyciski + - i SET

    Może jest mało elegancki (a może i nie ?) ale to był pierwszy większy program po rzeczach typu mruganie diodą ;)

    Sub Menu
    Menuu = 1
    Waitms 200
    Cls
    
    'znaki góra/dół/ok
    Locate 2 , 1
    Lcd Chr(3)
    Locate 2 , 8
    Lcd Chr(2)
    Locate 2 , 15
    Lcd "OK"
    
    
    
    Do
    Locate 1 , 1
    Select Case Menuu
    Case Is = 1
    Lcd "1.Ustaw temp.   "
    Case Is = 2
    Lcd "2.Ustaw Kp,Kd,Ki"
    Case Is = 3
    Lcd "3.R. Dwustanowa "
    Case Is = 4
    Lcd "4.R. PID        "
    Case Is = 5
    Lcd "5.Reset  EEPROM "
    End Select
    
    If Plus = 0 And Menuu < 5 Then
    Incr Menuu
    Waitms 222
    End If
    
    If Plus = 0 And Menuu = 5 Then
    Menuu = 1
    Waitms 222
    End If
    
    If Minus = 0 And Menuu > 1 Then
    Decr Menuu
    Waitms 222
    End If
    
    If Minus = 0 And Menuu = 1 Then
    Menuu = 5
    Waitms 222
    End If
    
    
    
    
    If Sett = 0 And Menuu = 4 Then
    Call Pid
    End If
    
    
    If Sett = 0 And Menuu = 1 Then
    Call Ustaw_temp
    End If
    
    If Sett = 0 And Menuu = 2 Then
    Call Ustaw_k
    End If
    
    
    If Sett = 0 And Menuu = 5 Then
    Call Reseteeprom
    End If
    
    If Sett = 0 And Menuu = 3 Then
    Call Dwustan
    End If
    
    Loop
    
    End Sub Menu


    wystarczy używać tylko np. przycisku "+" gdyż menu się zapętla



    jedno z podmenu

    Sub Ustaw_temp
    Waitms 200
    Cls
    Lcd "Tz:"
    Locate 2 , 1
    Lcd "+       -     OK"
    
    While Sett = 1
    
    Locate 1 , 8
    Lcd Tz
    
    If Plus = 0 Then
    Tz = Tz + 0.5
    Waitms 66
    End If
    
    If Minus = 0 Then
    Tz = Tz - 0.5
    Waitms 66
    End If



    [Atmega32][bascom] sterownik pieca co
  • #7 5579355
    e11
    Poziom 17  
    Podłączę się trochę pod temat chodzi mi też o menu. Mianowicie robię obrotomierz z ustawianymi progami alarmów jak zrobić w menu ustawianie kiedy trzymam wciśnięty przycisk to zmieniają mi się nastawy najpierw o jeden, jak trzymam dalej przycisk to zaczynają się przestawiać o dziesięć następnie o sto. Bo klikać przyciskiem 1200 razy to raczej średnia przyjemność nic ciekawego nie wpada mi do głowy .Pozdrawiam
  • #8 5579397
    Freddy
    Poziom 43  
    Było niedawno na ten temat. Sprawdzaj upływ czasy, a potem zwiększaj zmienną o 100 a nie o 1
REKLAMA