Hey Leute hoffe ihr könnt mir helfen,
Möchte gerne eine Taste in der Hauptschleife erkennen und beim drücken in ein Untermenü springen. Mit dem Debounce Befehl bis dahin eigentlich kein Problem. Jetzt sollte aber ein Unterschied darin liegen, wie lange ich die Taste drücke:
Kurzer Druck -> Nichts passiert (später vielleicht Led odes so schalten).
Langer Druck -> Untermenü geht auf.

Habe schon so vieles versucht.
Wollte Timer1 ca. mit 2 Sekunden zum Überlauf voreinstellen. Falls es zum Überlauf kommt sollte ein Untermenü aufgehen, bis ich dieses wieder mit dem gleichen Taster quitiere und zur Hauptschleife zurück kehre. Falls es nicht zum Überlauf kommt (Taster also nicht 2 Sekunden gedrückt wurde) sollte dieses Untermenü nicht aufgehen, der Timer gestopt und wieder auf den "2 Sekunden Wert" zurück gestellte, eine Led getoggelt und in die Hauptschleife zurück gesprungen werden.

Ich hoffe Ihr könnt mir helfen, bitte bitte bitte

Hier meine Bascom Datei

Code:
'**********************************************************************************************
'**********************************************************************************************
'************************   Variablen Festlegen    ********************************************

 Dim A As Byte

'**********************************************************************************************
'**********************************************************************************************
'************************      Hauptprogramm     **********************************************

 Stop Timer1
 Sound Portd.4 , 800 , 150

 Call Lcd_rs232                                             ' Rufe Unterprogramm "Lcd_RS232" auf


 Do

  If A = 1 Then Gosub Lcd_uhrzeit
  'Wenn A =1 , also Taster länger als 2 Sekunden gedrückt, wechsele in Sub LCD_UHRZEIT

 Debounce Pinc.1 , 0 , Ledein , Sub




 Loop
 End


'**********************************************************************************************
'**********************************************************************************************
'************************      Unterprogramme     *********************************************

 Sub Lcd_rs232:                                             ' Sub Standardbildschirm

 Cls
 Locate 1 , 4
 Lcd "RS232 Test"
 End Sub

'------------------------------
 Sub Lcd_uhrzeit:
  Sound Portd.4 , 900 , 250
 Cls
 Locate 1 , 5
 Lcd "Uhrzeit"
 A = 0
 'Variable A wieder auf 0 setzen
 Do
 Debounce Pinc.1 , 0 , Lcd_rs232
 ' Taster 1 nochmal drücken um wieder ins Hauptmenü zu wechseln
 Loop
 End Sub

 '------------------------------

  Sub Ledein:
 Timer1 = 36736
 'ca. 2 Sekunden bis zum Überlauf
 Start Timer1
 If Pinc.1 = 1 Then
 Stop Timer1
 'Wenn Taster wieder losgelassen wird stoppe den Timer1, ANNSONSTEN KOMMT ES ZUM ÜBERLAUF T1
 Timer1 = 36736
 ' Timer wieder zurücksetzen auf ca. 2 Sekunden, falls es nicht zum Überlauf kam
 Toggle Portd.7
 ' Falls kein Überlauf Toggle LED
 End If
 End Sub

'**********************************************************************************************
'**********************************************************************************************
'************************        Interrupts       *********************************************

 T1:
 Stop Timer1
 Incr A
 Call Lcd_uhrzeit
 Return