Ist vielleicht nicht schön, aber funzt auch ohne.
im Prinzip isses eigentlich völlig egal, Hauptsache das Programm läuft 
Ich mach's halt so, daß ich im Hauptprogramm eine Schleife habe, die dann weiter verzweigt.
Du mußt bei Tasterabfragen ja normalerweise immer wieder Abfragen, mußt also sowieso im Programm irgendwie zurückspringen.
Bei Gosub brauchst du ein Return, sonst läuft das Programm einfach weiter und springt nicht mehr zurück, wie es soll.
Ich mach's in etwa so:
Code:
Taster1 Alias Pind.0
Taster2 Alias Pind.1
Do
Gosub Tasterabfrage
Loop
End 'end program
Tasterabfrage:
If Taster1 = 0 Then
Gosub Label1
End If
If Taster2 = 0 Then
Gosub Label2
End If
Return
Label1:
Cls
Lcd "HAllo"
Return
Label2:
Cls
Lcd "TEST"
Return
'(Man sollte allerdings noch abfragen, ob der Menüpunkt schonmal abgefragt wurde,
'sonst flackert das Display durch die dauernden CLS während dem Tastendrücken und man sieht auch nicht viel ) ;).
'Oder nur eine Zeile löschen / überschreiben etc..
'Das Return läßt das Programm an der Stelle nach dem Gosub-Aufruf weiterarbeiten, springt also zurück.
' Im Gegesatz zum GOTO, bei dem lediglich zum Label gesprungen wird und nicht zurück.
Lesezeichen