Witam , postanowiłem sobie napisać menu padło na instrukcję case , mój problem to jak zagnieździć i obsłużyć case tzn.napisałem taki kod ale dziwnie obsługuje przycisk i nie wiem jak to mam poprawić Do Menu = Encoder(pinb.0 , Pinb.3 , Links , Rechts , 1) Waitms 10 Loop End Links: Incr Menu If Menu >= 4 Then Menu = 0 End If: Select Case Menu Case 0 : Waitms 100 Locate 1 , 1 : Lcd "Scan " : If Pinb.5 = 0 Then Incr Scan If Scan >= 3 Then Scan = 0 : End If Select Case Scan Case 0: Locate 2 , 2 : Lcd "Sped" If Pinb.5 = 0 Then Incr Sped : If Sped >= 2 Then : Sped = 0 : End If : End If : Select Case Sped Case 0: Locate 2 , 8 : Lcd "Fast" Case 1: Locate 2 , 8 : Lcd "Slow" End Select : Case 1: Locate 2 , 2 : Lcd "Freq" If Pinb.5 = 0 Then Incr Of : If Of >= 2 Then : Of = 0 : End If : End If Select Case Of Case 0: Locate 2 , 7 : Lcd "ON " Case 1: Locate 2 , 7 : Lcd "OFF " End Select : Case 2: Locate 2 , 2 : Lcd "Memory" End Select End If Case 1 : Waitms 100 Locate 1 , 5 : Lcd "Display" Case 2 : Waitms 100 Locate 1 , 5 : Lcd "Beep " Case 3 : Waitms 100 Locate 1 , 5 : Lcd "AGC " End Select Return Rechts: Decr Menu Return
|
|||
Re: Menu w Case i jeden przycisk
Masz to w ogóle źle napisane jak to napisał jeden kolega na innym forum.
Musisz wszystko utrzymać w pętlach do...loop i dopiero po zatwierdzeniu wychodzisz z pętli i przechodzisz dalej.
Spójrz na takie menu które ja sobie napisałem a zapewniam Cię że działa bo testowane było na "żywym organizmie".:
Moja strona w powijakach
Menu będę miał dość duże w
Menu będę miał dość duże w sumie coś takiego MENU 1
Menu1.1
Menu1.1.1 - warunek do wyboru
Menu1.1.2 - warunek do wyboru
MENU 2
i tak dalej i jak to zrobić za pomocą time0 , time1 ?
Re Menu na case
Ale timer wcale nie jest Ci do tego potrzebny. Przestudiuj ten przykład co Ci podałem a uwierz mi że powie Ci dużo odnośnie pisania menu. Zasada tworzenia takiego menu polega na wchodzeniu w poszczególne pętle i wychodzeniu z nich dopiero po spełnieniu określonego warunku.
Moja strona w powijakach
menu w pętlach warunkowych co o ty sądzicie
Co sądzicie o takim menu.
Pętla główna plus cztery pętle warunkowe do ustawiania parametrów.Cztery przyciski:menu,podmenu (oznaczone w listingu jako escape),plus i minus.Trzy DS18B20 na jednym pinie.Zależało mi na tym aby po wciśnięciu przycisku menu zwiększało się o jeden i przy dalszym naciskaniu nie zwiększało się dalej.Zrobiłem to za pomocą flagi pomoc.Po wejściu w menu naciskamy przycisk podmenu (oznaczony escape)i strzałka przechodzi do poszczególnych parametrów ustawianych.Tutaj zastosowałem polecenie waitms aby w przypadku trzymania przycisków plus lub minus parametr płynnie się zmieniał.Po wyjściu z każdego z menu jest czyszczony LCD.
Oczywiście jest to projekt który sukcesywnie rozwijam.Listing przedstawiony poniżej zaprogramowałem i działa bez zarzutu.
Mam zrobiony zegar na układzie PCF8583 z podtrzymaniem i zastanawiam się czy zmnienne ustawiane zapisywać do eeprom czy zastosować zasilanie awaryjne do procka.
Grzegorz