Danke für die schnelle Rückmeldung!
Dieser "Codeschnipsel" ist eigentlich schon das ganze Programm bzw. Teilprogramm für den Alarm.
Vom Uhrenprogramm wird nur die aktuelle Zeitinformation übernommen (_hour, _min) und mit der eingestellten Zeit verglichen.
Das ist das Ganze:
Ich hab den RETURN mal rausgenommen, dann bleibt er wie vorhersehbar bei "Stellen" stehen.Code:$regfile = "m8def.dat" $crystal = 9830400 $hwstack = 60 $swstack = 32 $framesize = 64 $include "INIT_LCD20x4.bas" 'LCD an Port D Pinb = &B11000000 'B 0,1 = Enc; 2,3,4,5 = Taster Portb = &B00111111 Dim Al_min As Byte , Al_std As Byte Enc_a Alias Pinb.0 Enc_b Alias Pinb.1 Ta_std Alias Pinb.2 Ta_min Alias Pinb.3 Ta_stellen Alias Pinb.4 Ta_enc Alias Pinb.5 Locate 4 , 1 : Lcd "Alarm" '--------------- Taster - Schleife -------------------------------- Do If Ta_stellen = 0 Then Waitms 10 While Ta_stellen = 0 NOP ' Debouncing Nop Wend Goto Set_alarm End If Locate 4 , 13 : Lcd " Ein " Loop '-------------- Stellen - Schleife ------------------------------------------ Set_alarm: Do If Ta_min = 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 Then Al_std = Al_std + 1 'Stunde stellen If Al_std = 24 Then Al_std = 0 Waitms 200 End If '----------------------------------------------------------------------------------------- If Ta_stellen = 0 Then Exit Do '----------------------------------------------------------------------------------------- Locate 4 , 13 : Lcd "Stellen" Locate 4 , 7 : Lcd Al_std ; ":" ; Al_min Loop 'Return End '( '-------------- LCD rechtsbündige Anzeige ------------------------------------ Locate 4 , 7 ' Anzeige Al_Std If Al_Std < 10 Then Lcd " " ; Al_Std Else Lcd Al_Std ; " " Locate 4 , 9 ' Anzeige Al_Min If Al_Min < 10 Then Lcd ":0" ; Al_Min Else Lcd ":" ; Al_Min Waitms 50 ')
Die Frage ist für mich also: Wie komme ich aus der Stellroutine, ohne den Inhalt von Al_std und Al_min
zu verlieren?







Zitieren

Lesezeichen