INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Wiederkehrende Aktion alle XX min, Modulo
18.11.2014, 14:04 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2014 02:01 von Wampo.)
Beitrag #1
Wiederkehrende Aktion alle XX min, Modulo
Hallo,

ich frage mich wie man sich am leichtesten bei einer Uhr zum beispiel eine wieder holung programmiert, ich möchte nämliche alle 15 min eine aktion ausführen.

das könnte ich natürlich mit ner if abfrage machen und sagen wenn sek 00 und min bei 15 oder 30 oder 45 oder 00 ist dann tu es, aber das sieht mir zu kompliziert aus bzw glaube ich das es da einen einfacheren weg gibt?! Oder liege ich da falsch?!

MfG Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.11.2014, 14:36
Beitrag #2
RE: Wiederkehrende Aktion alle 15 min
Hallo Daniel,

das sieht vielleicht auf den ersten Blick kompliziert aus, ist es aber nicht.

Das geht mit einer Zeile als if-Bedingung.
Die Miutenabfragen alle verodern und mit der 00 Sekundenabfrage verunden.
Code:
if ((minute == 0 || minute == 15 || minute == 30 || minute == 45) && sekunde == 0)
{
// Aktion
}

Vielleicht muss man sich noch merken ob die Aktion bereits ausgeführt wurde, sonst kann es passieren dass die Aktion mehrmals ausgeführt wird solange Sekunde = 0 ist.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.11.2014, 14:47 (Dieser Beitrag wurde zuletzt bearbeitet: 18.11.2014 14:53 von Wampo.)
Beitrag #3
RE: Wiederkehrende Aktion alle 15 min
Ok vielen dank, mir schwebte da noch iwas mit Modulo im kopf. Dachte das damit auch sone 15 min abstands sache möglich ist.

Aber mal ne ganz dumme frage wie würde das dann bei Stündlich aussehen muss ich dann 12 std vorgeben?

Vielen dank.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.11.2014, 15:07
Beitrag #4
RE: Wiederkehrende Aktion alle 15 min
Hallo Daniel,

oder so als Vorschlag:
Code:
unsigned long lastnow;
lastnow=millis();
if (millis() - lastnow > 900000 ) // 900000 = 15 Minuten
  {
    // hier die Aktion die zyklisch ausgeführt werden soll
    lastnow=millis();
}

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.11.2014, 15:07 (Dieser Beitrag wurde zuletzt bearbeitet: 18.11.2014 16:07 von ardu_arne.)
Beitrag #5
RE: Wiederkehrende Aktion alle 15 min
Hallo,

15min mit Modulo-Hilfe
Code:
if ( !minute % 15  && sekunde == 0)
{
// Aktion
}
aber ohne Gewähr, kann sein dass dieser Code nicht funktioniert!

und stündlich
Code:
if (minute == 0 && sekunde == 0)
{
// Aktion
}

Gruß
Arne

Edit: 15min-Version wegen Gedankenfehler meinerseits geändert.

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.11.2014, 15:09
Beitrag #6
RE: Wiederkehrende Aktion alle 15 min
Verdammt, mittlerweile denk ich glaub ich einfach zu kompliziert...


danke danke....ihr seit die besten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.11.2014, 01:41
Beitrag #7
RE: Wiederkehrende Aktion alle 15 min
(18.11.2014 15:07)ardu_arne schrieb:  Hallo,

15min mit Modulo-Hilfe
Code:
if ( !minute % 15  && sekunde == 0)
{
// Aktion
}
aber ohne Gewähr, kann sein dass dieser Code nicht funktioniert!

und stündlich
Code:
if (minute == 0 && sekunde == 0)
{
// Aktion
}

Gruß
Arne

Edit: 15min-Version wegen Gedankenfehler meinerseits geändert.

Also dein Gedankengang mit dem 15Min Modulo ist ebenfalls nur ein Std Modulo, hänge da auch noch dran ein 15 min Modulo zu basteln, scheint aber nicht ganz easy...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.11.2014, 09:29
Beitrag #8
RE: Wiederkehrende Aktion alle 15 min
Moin Daniel,

Eigentlich sollte meine 15min-Version auch alle 15min erfüllt sein.
Wenn das nicht so ist habe ich den Code vielleicht doch zu sehr vereinfacht.
minute % 15 ergibt doch alle 15 Minuten einen Teilungsrest von 0?
evtl. muss man das noch einklammern (minute % 15) was dann im Code so aussieht:
Code:
if ( !(minute % 15)  && sekunde == 0)
{
// Aktion
}

Es kann aber auch sein, dass der Ausdruck !(minute % 15) nicht wie gewünscht eine logische 1 liefert wenn der Teilungsrest 0 ist.

Ich kann es leider im Moment nicht auprobieren.

Gruß
Arne

(19.11.2014 01:41)Wampo schrieb:  ...
Also dein Gedankengang mit dem 15Min Modulo ist ebenfalls nur ein Std Modulo, hänge da auch noch dran ein 15 min Modulo zu basteln, scheint aber nicht ganz easy...

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Ankommende Daten(Webserver) am MEGA2560 für eine Aktion auswerten ? arduinofan 0 481 11.12.2015 09:06
Letzter Beitrag: arduinofan
  Arduino alle Speicher auf o setzen Woldeu 0 1.060 23.06.2013 08:43
Letzter Beitrag: Woldeu

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste