Status permanent aktualisieren

Hallo,

momentan versuche ich noch immer folgendes zu vermeiden:

Wenn sich bei mir im Programmcode ein Status ändert, soll diese Änderung vom Prozessor nur einmal vollzogen werden .

Beispiel:

if(millis==1000)
{
status = 1;
}

Einfacher wäre es für mich aber in manchen Fällen, wenn ich statt dessen folgendes schreiben könnte:

if(millis>=1000)
{
status = 1;
}

In diesem Fall würde der Prozessor aber mehrere zehntausend Mal pro Sekunde den Status “aktualisieren” müssen.

Kostet dies Prozessorleistung, oder ist dem Prozessor das völlig egal? Dass es bei der zweiten Lösung zu u.U. ungewollten Problemen spätestens dann kommen kann, wenn im weiteren Verlauf ein weiterer Status zu “setzen” wäre, ist mir klar. Dies ist ja auch nur ein Beispiel.

Gruß Chris

if(millis>=1000&& status !=1)

Probiers doch mit:

if (Bedingung&&status==0) status=1;

Wobei die Bedingung irgndeine zeitliche Geschichte ist, die du mit millis() angedeutet hast. Tatsächlich geht es bei solchen Sachen aber eher um die Differenz zwischen den aktuellen millis() und einem vorherigen Zeitpunkt.

[edit] Danke an sschultewolter für den Hinweis auf die falsch gesetzten Gleichheitszeichen, der Codeschnipsel sollte nun richtig sein.

sth77:
Probiers doch mit:

if (Bedingung&&status=0) status==1;

Wobei die Bedingung irgndeine zeitliche Geschichte ist, die du mit millis() angedeutet hast. Tatsächlich geht es bei solchen Sachen aber eher um die Differenz zwischen den aktuellen millis() und einem vorherigen Zeitpunkt.

if (Bedingung&&status==0) status=1;

Autsch, da hast du natürlich recht. Ist einer meiner beliebtesten Fehler. :wink: Ich korrigiere das oben mal...