@ for_ro:
Genau wie Du schreibst, ist es!
Nochmal kurz erklärt, was ich eigentlich will:
Der "Mode"-Taster soll zwischen "Anzeigen-und Alarm-Ein" Mode" und " Stellen" Mode" umschalten.
Es könnte auch so gehen, das ich gleichzeitig Mode- und Stelltaster zum stellen drücken muß.
Ich glaube, das geht wohl am Einfachsten.
Das Debouncing stammt noch vom alten Codeschnipsel, das wird nicht nötig sein.
- - - Aktualisiert - - -
Ich hab das jetzt mal so gemacht:
Code:
$regfile = "m8def.dat"
$crystal = 9830400
$hwstack = 40
$swstack = 16
$framesize = 32
$include "INIT_LCD20x4.bas" 'LCD an Port D
Pinb = &B11000000 'B 2,3,4 = Taster
Portb = &B00111100
Dim Al_min As Byte , Al_std As Byte
Ta_std Alias Pinb.2
Ta_min Alias Pinb.3
Ta_mode Alias Pinb.4
Locate 1 , 1 : Lcd "Alarm "
Do
If Ta_mode = 0 Then
Locate 1 , 13 : Lcd "Stellen"
Else
Locate 1 , 13 : Lcd "Ein "
End If
If Ta_min = 0 And Ta_mode = 0 Then
Al_min = Al_min + 1 'Minute stellen
If Al_min = 60 Then Al_min = 0
Waitms 200
End If
If Ta_std = 0 And Ta_mode = 0 Then
Al_std = Al_std + 1 'Stunde stellen
If Al_std = 24 Then Al_std = 0
Waitms 200
End If
'-------------- LCD rechtsbündige Anzeige ------------------------------------
Locate 1 , 7
If Al_Std < 10 Then Lcd " " ; Al_Std Else Lcd Al_Std ; " "
Locate 1 , 9
If Al_Min < 10 Then Lcd ":0" ; Al_Min Else Lcd ":" ; Al_Min
Waitms 50
Loop
End
und das geht so wie gewollt! Die zwei-Taster-Bedienung ist garnicht mal schlecht.
Jetzt brauch ich nur noch den Uhrzeit-Vergleich und die Ausgabe austüfteln.
Ich danke Euch für die hilfreichen Tipps, hab ich doch wieder was gelernt!
Joachim
Lesezeichen