bin jetzt schon etwas weiter bloß hab ich ein problem und zwar funktioniert das entprellen bei dem einstellen der zeit nicht. die anzeige rast dann.
der letzte sub sollte für die einstellung sein nur irgendwie entprellt er nicht.

Code:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40



Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcdbus = 4
Cursor Off
Ddrb = &B11111111
Ddrd = &B00000000
Portd.2 = 1
Portd.3 = 1
Portd.4 = 1
Portd.5 = 1
Portd.6 = 1
Portd.7 = 1

Enable Interrupts
Config Clock = Soft
Config Portd = Input
Declare Sub Stunde
Declare Sub Minute
Declare Sub Ausgabe
Declare Sub Menue
Dim Modus As Byte
Declare Sub Einstellen
Cls

Time$ = "00:00:00"

Do
   Locate 1 , 1
   Lcd Time$ ; "  " ;
   Debounce Pind.3 , 0 , Stunde , Sub
   Debounce Pind.4 , 0 , Minute , Sub
   Debounce Pind.2 , 0 , Menue , Sub
   Debounce Pind.7 , 0 , Einstellen , Sub
Loop






Menue:
Gosub Ausgabe
Return



Ausgabe:
Incr Modus
If Modus = 3 Then Modus = 0
Locate 2 , 1
If Modus = 0 Then
Locate 2 , 1
Wait 1
Lcd "MP3  "
Portb.0 = 1
Else
Portb.0 = 0
End If

If Modus = 1 Then
Locate 2 , 1
Wait 1
Lcd "Radio"
Portb.1 = 1
Else
Portb.1 = 0
End If

If Modus = 2 Then
Locate 2 , 1
Wait 1
Lcd "AUX  "
Portb.2 = 1
Else
Portb.2 = 0
End If
Return



'Stunde
Sub Stunde
Waitms 200
Cls
Waitms 200
Do
Locate 1 , 1
Lcd "Stunde"
Locate 1 , 10
Lcd _hour
If Pind.7 = 0 Then
Incr _hour
Locate 1 , 10
Lcd _hour
End If
If _hour > 23 Then
_hour = 00
End If
Loop Until Pind.3 = 0
Waitms 200
Cls
Waitms 200
End Sub



'Minute
Sub Minute
Waitms 200
Cls
Waitms 200
Do
Locate 1 , 1
Lcd "Minute"
Locate 1 , 10
Lcd _min
If Pind.7 = 0 Then
Incr _min
Locate 1 , 10
Lcd _min
End If
If _min > 59 Then
_min = 00
End If
Loop Until Pind.4 = 0
Waitms 200
Cls
Waitms 200
End Sub

Return


'einstellen
Sub Einstellen
Gosub Stunde
Gosub Minute
End Sub
Return