Laufzeit eines Programms bestimmen

Gast #779111
Lesenswert?
• ▲
▼
Hallo,

gibt es ein Tool mit dem ich die Laufzeit einer Schleife bestimmen kann 
ohne 2 Stunden lang Assembler Befehle zu zählen. Ich möchte die Periode 
einer Regelschleife verringern und wissen was der Berechnungsaufwand des 
Algorithmus im Programm minimal zulässt.

Eine Lösung die ich bisher genutzt habe war mit jedem neuen 
Schleifendurchlauf ein PIN zu toggeln und mir das dann am Oszilloskop 
anzuschauen.

Danke für Eure Tipps
Gast #779120
Lesenswert?
• ▲
▼
Wenn Du noch einen Timer freihast, kannst Du ihn wunderbar zur Messung 
der Zeit einsetzen:  Am Beginn der Schleife resetten und starten, am 
Ende stoppen, Wert auslesen, per SPI o. ä. auf ein LC-Display o. ä. 
ausgeben.
Gast #779136
Lesenswert?
• ▲
▼
ich hätte den Beitrag des OP wohl bis zu Ende lesen sollen...

Aber was ist an dieser Lösung schlecht? Alles andere ist wesentlich 
aufwändiger (da es ja wohl um die Minimierung der Programmierung geht)

Grüße,

Gisbert
Gast #779187
Lesenswert?
• ▲
▼
>Schade das nicht auch die Sekunden angezeigt werden :-P

Wenn er das will, könnte er sich einfach ein Impulsdauermessgerät bauen. 
Dann reicht im Messobjekt simples Pin-Toggeln bei Ein-/Austritt in/aus 
dem interessierenden Codeabschnitt.  Das Messgerät kann im einfachsten 
Fall nur aus einem quarzgetakteten µC bestehen, wenn man sich die 
Messwerte von ihm über die serielle Schnittstelle zum PC schicken läßt. 
Der riesige Bereich möglicher sinnvoller Messzeiten (wenige µs bis 
etliche s) ist zu bewältigen, indem man mehrere, unterschiedlich schnell 
tickende Zähler laufen lässt (reichen evtl. zwei aus?).
Gast #779191
Lesenswert?
• ▲
▼
Ja, ich hatte gedacht, es gibt in Simulavr, avrStudio usw. eine 
Möglichkeit ohne irgendwelchen Programmieraufwand (nicht gleich hauen 
:-) ) die Sache eins zwei drei zu bekommen.

Dann bleib ich bei der Oszi Methode, der Timer ginge natürlich auch, 
müsste man nur ein bisschen drüber nachdenken, dass er nicht überläuft.
Persönliche Seite #779254
Lesenswert?
• ▲
▼
AVRFan wrote:
> Nur eine Minute... lach :-)
>
>>Nur sollte der Timer breit genug sein das kein Überlauf entsteht.
>
> Dem kann man durch passende Wahl des Prescalers entgegenwirken.

Was allerdings auch die Aufloesung verringert. Wenn Du es genau wissen 
willst zaehle die Befehle, schau im Datenblatt nach wieviel Takte sie 
brauchen. Bei nem AVR kann man sowas noch machen. Unterbrechungen durch 
Interrupts und andere Ereignisse sind dann natuerlich nicht mit 
beruecksichtigt, also "Netto"Laufzeit.

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