period. ereignisse aus free running counter ?

Gast #180953
Lesenswert?

Hi,

ich habe eine Timerinterrupt der nach ablauf einer bestimmten Zeit eine
Variable "A" erhöht ( ergibt einen free-Running counter ) der sich all
x millisekunden erhöht.

Aus "A" wuerde ich mir gerne einige periodische Ereignisse ableiten.

ich suche jetzt ne idee das eleganter zu machen als:

if ( "A" == n ) { ... }

im Besonderen, da ein Ereignis nicht nicht nur bei n sondern auch bei
2n, 4n, 6n eintreten soll, ein anderes Ereigniss bei m, 3m, 6m, 9m etc
...

Vieleicht hat ja jemand eine idee hierzu.

Grüße,

Stefan
Gast #180955
Lesenswert?

** GRR!

Nochmal von vorne:

Angenommen, Dein "A" wäre ein Int-Wert, dann känntest Du das so
erledigen:

  if (!((a / n) % 2))
    Ereignis_n;

  if (!((a / m) % 3))
    Ereignis_m;

Ereignis_n wird aufgerufen für a = 0, a = 2n, a = 4n etc.

Ereignis_m wird aufgerufen für a = 0, a = 3m, a = 6m etc.

Wär' das was?
Gast #180958
Lesenswert?

Hi,

Erst mal vielen Dank für Eure Antworten.

Die Idee von Werner ist das was ich mir als "Gotcha" ;-) aus meiner
Frag erhoft habe.

An die Modulo Rechnerei hatte ich auch schon lose gedacht, hab mich
aber nicht wirklich dran gewagt, das so zu machen wegen des
befürchteten code/rechen/Zeitaufwandes ( die division ).

Die One-Shot Timer Bibliothek ist auch interessant,
mit Werners Vorschlag komme ich aber , da er hinreichend für mein
Problem ist mit deutlich weniger Code weg.

Grüße,

     Stefan

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