Uhrzeitauswertung mit 1-maliger auslösung

OP #4512666
Lesenswert?
• ▲
▼
Hallo Gemeinde,

ich progge in Bascom und überlege mir gerade einen Weg wie ich eine 
bestimmte Aufgabe lösen kann.
Ich habe eine DCF77 geführte Uhr mit festgelegten Variablen. Zum 
Beispiel steht in der Variable _hour die Stunde drin.
Nun möchte ich z.Bsp. um 22 Uhr eine Aktion ausführen:
1
Select Case _hour
2

3
        Case 22 : If Rgb_auto = 1 Then
4
                      Rf12_data(2) = &H1                    ' Küchen Nachtbeleuchtung Nachtmodus => RGB ausschalten
5
                      Rf12_data(6) = &H2
6
                      Byteanzahl = 5
7
                      Slaveadress = 40
8
                      Gosub Sendsnapframe
9
                      Gosub Rf12_rxd_on
10
                  End If
11
         Case 6 : If Rgb_auto = 1 Then
12
                      Rf12_data(2) = &H1                    ' Küchen Nachtbeleuchtung Nachtmodus => RGB einschalten
13
                      Rf12_data(6) = &H3
14
                      Byteanzahl = 5
15
                      Slaveadress = 40
16
                      Gosub Sendsnapframe
17
                      Gosub Rf12_rxd_on
18
                  End If
19
   End Select
Nun habe ich hier das Problem, dass ja im Programmablauf die 
Caseschleife so lange es 22Uhr ist, gesprungen wird.
Die obrige Aktion soll aber nur einmal durchgeführt werden.
Ich könnte mir eine zusätzliche Variable anlegen, die nach der Aktion 
auf 1 gesetzt wird und zur bestimmten Zeit wieder zurück.
So bräuchte ich für jede Schaltaktion/Zeit jeweils eine Variable.

Wie löst Ihr solch eine Aufgabe, gibt es etwas eleganteres?

Grüße!
(Firma: Vescomp) #4512879
Lesenswert?
• ▲
▼
Matthias S. schrieb:
> Wie schaut es aber aus wenn man ich sage mal 100 Schaltzeiten benötigt,
> bedeutet das 100byte nur als "merker" benutzt werden.
> Geht dies noch irgendwie "eleganter" für mehrer Schaltzeiten?

 100 Schaltzeiten muss man irgendwo merken, meistens im Eeprom.
 Aber das kriegst du schlecht hin mit 1 Byte, es sei den 6 Minuten
 Abstand ist OK.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren