Forum: Mikrocontroller und Digitale Elektronik Modulo oder if-Schleifen


von Großes Fragezeichen (Gast)


Lesenswert?

Hallo allerseits,

was ist zeitlich auf einem Mikrokontroller sinnvoller umzusetzen, wenn 
es darum geht eine Uhr zu konstruieren?

Variante 1:

ISR(...)
{
Sekunden++;
  if(Sekunden>59)
     {
      Sekunden=0;
      Minuten++;
     }
//weiter mit Stunden etc...
}

oder
ISR(...)
{
Sekunden++;
Sekunden%60;
if (Sekunden>59)
Minuten++;
Minuten%60;
//und so weiter
}

von Peter (Gast)


Lesenswert?

und was soll diese anweisung denn machen?

> Sekunden%60;

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Also der zweite Ansatz zählt die Minuten auf jedenfall nie hoch...
(angenommen du korrigierst den von Peter angemerkten Fehler)

von Bad U. (bad_urban)


Lesenswert?

Hallo,

die erste Variante sollte die schnellere sein. Denn bei der zweiten 
brauchst Du ja die If-Abfrage zusätzlich zum modulo.
Und am Rande: Lösung zwei würde garnicht funktionieren, da die Sekunden 
nie >59 werden können.

Gruß
Bad Urban

Edit: Jetzt waren sogar zwei schneller :-)

von Uwe .. (uwegw)


Lesenswert?

1. gibt es keine if-Schleife
2. ist ein Vergleich für die meisten µCs deutlich schneller 
durchzuführen als eine Division. Daher ist die Idee mit dem modulo nicht 
so gut.

von Lehrmann M. (ubimbo)


Lesenswert?

modulo ist ein Albtraum für die Rechenleistung ...

von Tobi (Gast)


Lesenswert?

Lehrmann Michael schrieb:
> modulo ist ein Albtraum für die Rechenleistung ...

Außer bei Zweierpotenzen.

Außerdem: http://www.if-schleife.de/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.