Dauer eines For-Schleifen Durchlaufs

Das hängt von dem Maschinencode ab, den der Compiler daraus macht. Das 
wiederum ist im allgemeinen u.a. abhängig von der eingestellten 
Optimierungsstufe.
Im Beispiel werden noch Funktionen (oder Macros) verwendet, deren 
Laufzeit mit eingeht. Wenn das echte Funktionen sind und die etwas 
sinnvolles machen, haben diese sogar den größten Anteil an der Laufzeit.
Also, ohne Kenntnis dieser Funktionen ist gar keine Aussage möglich.
Man kann es entweder Messen (z.B. Portpin am Schleifenanfang Toggeln und 
die Ausführungszeit dieser Instrumentierung herausrechnen) oder Zählen 
(alle Instruktionen, die der Compiler ausspuckt, mit der jeweiligen 
Zyklenzahl werten) für letztere Methode muß noch die CPU-Clk bekannt 
sein (könnte ja heruntergeteilt sein...).

Gruß

Martin
Gast
Martin hat Recht, wenn du kein Oszi besitzt, dann ist es wohl am 
einfachsten, wenn du dir das beim kompilieren erstellte Listing 
(listfile) ansiehst. Dort solltest du mehr oder weniger den 
"Assembler"-Code sehen, den der GCC erzeugt. Dann noch die Maschinencode 
Taktzyklen raussuchen und manuell addieren.

Andere Methode wäre noch (weiß jedoch nicht wie genau), das Projekt im 
AVR Studio zu simulieren. Der Simulator kann dir die Zeit anzeigen, die 
seit Beginn vergangen ist (zu jedem Zeitpunkt). Wenn du vor deiner 
Schleife einen Breakpoint setzt, die Zeit notierst und danach wieder 
einen Breakpoint setzt, dann siehst du ca. die benötigte Durchlaufzeit.

Das ganze siehst du beim AVR Studio Simulator (links) mit dem Begriff 
"Stop Watch". Wichtig ist, dass du die Frequenz anpasst.

Roman
p.s. Mehr Tipps gibt's in meinem Buch: www.avrbuch.de

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.