Hallo,

ich habe versucht ein Menü zu schreiben. Das Problem ist, dass ein Unterpunkt aufgerufen wird, auch wenn ich diesen gar nicht aufrufe; er erscheint immer .
Kann man das ganze Menü vielleicht eleganter programmieren, oder bin ich so auf dem richtigen Weg?
Gruß Max

Code:
$regfile = "2313def.dat"
$crystal = 4000000

Config Portb = Output
Config Portd = Input
Dim Vorvari As Byte
Dim Menue As String * 10
Dim Best As Byte

Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
Config Lcd = 16 * 4


Portd = &B11111111
Portb = &B11111111


Initlcd
Cls
Cursor On
Deflcdchar 1 , 32 , 32 , 4 , 8 , 31 , 8 , 4 , 32            ' pfeil nach links
Deflcdchar 2 , 32 , 32 , 4 , 2 , 29 , 2 , 4 , 32            ' pfeil nach rechts
Deflcdchar 3 , 10 , 32 , 17 , 17 , 17 , 19 , 13 , 32        ' ue
Deflcdchar 4 , 32 , 32 , 14 , 17 , 21 , 17 , 14 , 32        ' ok
Deflcdchar 5 , 10 , 32 , 14 , 1 , 15 , 17 , 15 , 32         ' "ae"
Deflcdchar 6 , 32 , 12 , 18 , 18 , 12 , 32 , 32 , 32        ' °



'-----Startbildschirm------
Locate 1 , 1
 Lcd "*Steuerung*"
Locate 2 , 6
 Lcd "*Start*";
Locate 3 , 3
 Lcd Chr(4) ; "=Best" ; Chr(5) ; "tigen"
Locate 4 , 1
 Lcd Chr(1) ; "=Zur" ; Chr(3) ; "ck | " ; "Vor=" ; Chr(2)
Gosub Eingabe                                               'wenn taster2 gedrück-> weiter
Cls
'------Hauptprogramm------
Do
 Vorvari = 1                                               
 Best = 0
 Do
  Home
  Debounce Pind.0 , 0 , Zurueck , Sub
  Debounce Pind.1 , 0 , Vor , Sub
  If Vorvari = 1 Or Vorvari = -3 Then Gosub Ausw1
  If Vorvari = 2 Or Vorvari = -2 Then Gosub Ausw2
  If Vorvari = 3 Or Vorvari = -1 Then Gosub Ausw3
  If Vorvari = 4 Or Vorvari = 0 Then Gosub Ausw4
 Loop Until Vorvari = -3 Or Vorvari = 5
Loop
'---------------

Ausw1:
 Locate 1 , 1
 Lcd "Temperatur "
'If Pind.2 = 0 Then
 Cls
 Locate 2 , 1                     'HIer werden später dann die Temperaturen per Variablen eingefügt
 Lcd "Innen:"
 Locate 3 , 1
 Lcd "Außen:"
 Locate 4 , 1
 Lcd "3.Fühler:"
Return

Ausw2:
 Lcd "Beleuchtung"
Return

Ausw3:
 Lcd "Strom      "
Return

Ausw4:
 Lcd "Ende       "
Return


'---------Routinen-----------
Zurueck:
Vorvari = Vorvari - 1
Return

Vor:
Incr Vorvari
Return

Eingabe:
Do
Loop Until Pind.2 = 0           'Erst beim Drücken der Taste läuft das Programm weiter