mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega; Codeoptimierung


Autor: Hans Wurst (hans_wurst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich verwende den Atmega3290p, schreibe gerade eine simple Schleife und 
frage mich gerade ob es wohl geschickter ist einen (z.B. als 
Funktionsargument übergebenen) Wert zu dekrementieren und diesen 
abzufragen wann er 0 ist. Oder ob das dekrementieren aufwändiger ist und 
ich lieber einen neuen Wert mit 0 definieren sollte, diesen 
inkrementieren und mit dem gewünschten Endwert zu vergleichen.
// Variante A:
void funktion(int Endwert)
{
    while (Endwert)
    {
        // tu etwas...
        Endwert--;
    }
}

// Variante B:
void funktion(int Endwert)
{
    int Zwischenwert = 0;

    while (Endwert > Zwischenwert)
    {
        // tu etwas...
        Zwischenwert++;
    }
}

Wie sind eure Meinungen? Oder sind beide Varianten gleich schnell? Wo 
könnte ich für dieses Thema gezielter nachlesen?

Danke schon für die Tipps.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beide Varianten compilieren und die Ergebnisse anschauen. Da sollte dann 
deutlich werden dass erstere "schneller" (weniger Takte benötigt) ist.

Autor: Hans Wurst (hans_wurst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke dir.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.