Hallo!
ich habe einige Problem mit meiner Menüsteuerung.
Bei dem vorherigen Versuch war das Prinzip vollkommen ausreichend und übersichtlich.
Aktuell habe ich da so meine Probleme und habe beim testen des Codes Probleme mit den Sprungmarken.
Hier mal der Code:
Besonders diese Stelle bschäftigt mich gerade:
In die untere Abzweigung "aktuelle Stunde" springt er rein und beim drücken von t_links auch wieder raus. hin und her geht.
alle weiteren Tasten inkl. den subroutinen addieren und subtrahieren werden ignoriert..
Die meisten Cases sind noch nicht bearbeitet, hatte das Menü gerade umgestellt.
Bisher habe ich kein einfaches Menü für Bascom gefunden.
Diese State Maschine ist auch mehr als nur ein bißchen komplex...
Hat jemand einen Vorschlage?
Danke schon mal!
ich habe einige Problem mit meiner Menüsteuerung.
Bei dem vorherigen Versuch war das Prinzip vollkommen ausreichend und übersichtlich.
Aktuell habe ich da so meine Probleme und habe beim testen des Codes Probleme mit den Sprungmarken.
Hier mal der Code:
Code:
Main:
Cls
Menu = 0
Hauptmenu = 0
Menuzeit = 0
Gosub Settime
Gosub Setdate
Do
Debounce T_menu , 0 , Menuconfig
If Menu = 0 Then 'Wenn das Menu aktiv ist, reguläre Anzeige überspringen
Select Case _wd
Case 1
Locate 1 , 1 : Lcd "Montag"
Case 2
Locate 1 , 1 : Lcd "Dienstag"
Case 3
Locate 1 , 1 : Lcd "Mittwoch"
Case 4
Locate 1 , 1 : Lcd "Donnerstag"
Case 5
Locate 1 , 1 : Lcd "Freitag"
Case 6
Locate 1 , 1 : Lcd "Samstag"
Case 7
Locate 1 , 1 : Lcd "Sonntag"
End Select
Locate 2 , 1
Lcd Date$ ; " " ; " " ; _hour ; ":" ; _min ; " Uhr"
Locate 3 , 1
Lcd Temperatur : Lcd " C"
If Messen > 4 Then
Gosub Gettemp
Messen = 0
End If
If Zeitabgleich > 10 Then
Gosub Getdatetime ' Datum und Uhrzeit auslesen
Zeitabgleich = 0
End If
End If
Loop
'#########################################################################################
Menuconfig:
Menu = 1
Incr Hauptmenu
Menuconst:
Cls
If Menuzeit = 0 Then
If Hauptmenu > 2 Then Hauptmenu = 1
Do
Debounce T_runter , 0 , Menuconfig
Select Case Hauptmenu
Case 1
Locate 1 , 1 : Lcd "Datum - Uhrzeit"
Locate 2 , 1 : Lcd "Einstellung"
Debounce T_rechts , 0 , L_menuzeit
Case 2
Locate 1 , 1
Lcd "LED Einstellung"
End Select
Loop
End If
L_menuzeit:
Incr Menuzeit
Cls
Do
Debounce T_menu , 0 , Main
If Menuzeit > 5 Then Menuzeit = 0
Debounce T_runter , 0 , L_menuzeit
'If Menuzeit = 1 Then Debounce T_runter , 0 , Subtrahieren
Select Case Menuzeit
Case 1 :
Locate 1 , 1
Lcd "Uhrzeit bearbeiten:"
Locate 2 , 1
Lcd "Stunde einstellen "
Locate 3 , 1
Lcd _hour : Lcd ":" : Lcd _min : Lcd " " : Lcd "Uhr"
If T_rechts = 1 Then
Bitwait T_rechts , Reset
Do
Locate 2 , 1
Lcd "Aktuelle Stunde "
Locate 3 , 1
Lcd _hour : Lcd ":" : Lcd _min : Lcd " " : Lcd "Uhr"
Debounce T_runter , 0 , Subtrahieren , Sub
Debounce T_hoch , 0 , Addieren , Sub
Loop Until T_links = 1
Bitwait T_links , Reset
End If
Case 2 :
Locate 1 , 1
Lcd "Uhrzeit bearbeiten:"
Locate 2 , 1
Lcd "Minute stellen"
Locate 3 , 1
Lcd _hour : Lcd ":" : Lcd _min : Lcd " " : Lcd "Uhr"
Case 3 :
Locate 1 , 1
Lcd "Datum bearbeiten"
Locate 2 , 1
Lcd "Tag stellen"
Locate 3 , 1
Lcd _day
Case 4 :
Locate 1 , 1
Lcd "Datum bearbeiten"
Locate 2 , 1
Lcd "Monat stellen"
Locate 3 , 1
Lcd _month
Case 5 :
Locate 1 , 1
Lcd "Datum bearbeiten"
Locate 2 , 1
Lcd "Jahr stellen"
Locate 3 , 1
Lcd "20" : Lcd _year
End Select
If Menuzeit = 0 Then Goto Main
Loop
Addieren:
Select Case Menuzeit
Case 1 :
_hour = _hour + 1
If _hour > 23 Then _hour = 0
Case 2 :
_min = _min + 1
If _min > 59 Then _min = 0
Case 3 :
_day = _day + 1
If _day > 31 Then _day = 0
Case 4 :
_month = _month + 1
If _month > 12 Then _month = 1
Case 5 :
_year = _year + 1
If _year > 99 Then _year = 01
End Select
Return
Subtrahieren:
Select Case Menuzeit
Case 1 :
_hour = _hour - 1
If _hour = 255 Then _hour = 23
Case 2 :
_min = _min - 1
If _min = 255 Then _min = 59
Case 3 :
_day = _day - 1
If _day = 255 Then _day = 31
Case 4 :
_month = _month - 1
If _month = 255 Then _month = 12
Case 5 :
_year = _year - 1
If _year = 255 Then _year = 99
End Select
Return
Menuback:
Menu = Menu - 1
'If Menu = 255 Then Menu = 5 'Menu rückwärts durchwählen
Goto Menuconst
Besonders diese Stelle bschäftigt mich gerade:
Code:
Debounce T_menu , 0 , Main
If Menuzeit > 5 Then Menuzeit = 0
Debounce T_runter , 0 , L_menuzeit
'If Menuzeit = 1 Then Debounce T_runter , 0 , Subtrahieren
Select Case Menuzeit
Case 1 :
Locate 1 , 1
Lcd "Uhrzeit bearbeiten:"
Locate 2 , 1
Lcd "Stunde einstellen "
Locate 3 , 1
Lcd _hour : Lcd ":" : Lcd _min : Lcd " " : Lcd "Uhr"
If T_rechts = 1 Then
Bitwait T_rechts , Reset
Do
Locate 2 , 1
Lcd "Aktuelle Stunde "
Locate 3 , 1
Lcd _hour : Lcd ":" : Lcd _min : Lcd " " : Lcd "Uhr"
Debounce T_runter , 0 , Subtrahieren , Sub
Debounce T_hoch , 0 , Addieren , Sub
Loop Until T_links = 1
Bitwait T_links , Reset
End If
Case 2 :
Locat
In die untere Abzweigung "aktuelle Stunde" springt er rein und beim drücken von t_links auch wieder raus. hin und her geht.
alle weiteren Tasten inkl. den subroutinen addieren und subtrahieren werden ignoriert..
Die meisten Cases sind noch nicht bearbeitet, hatte das Menü gerade umgestellt.
Bisher habe ich kein einfaches Menü für Bascom gefunden.
Diese State Maschine ist auch mehr als nur ein bißchen komplex...
Hat jemand einen Vorschlage?
Danke schon mal!