mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tool zur Messung der Codedauer


Autor: Bruno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

kennt jemand ein Tool, mit dem die benötigte Zeit für z.B. einen 
Funktionsdurchlauf berechnet werden kann? Ich arbeite mit IAR. Ist da 
vllcht. sowas schon enthalten?

Gruß Bruno

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du beim Linker als Ausgabeformat UBROF8 (?) einstellst, kannst du 
die Datei direkt ins AVR Studio laden und somit die Stoppuhr laufen 
lassen.

MW

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab's noch nie ausprobiert...
...aber schau mal im IAR User Guide nach "Profiling"

Autor: Bruno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ich IAR benutze werde ich das mal mit dem Profiling versuchen.
Danke für die Ratschläge.

Autor: MC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Etwas unkonventionell, aber am einfachsten ist es, bei Geginn und zu 
Ende der  jeweiligen Funktion einen Portpin zu toggeln und auf dem 
(Speicher-)Oszilloskop dann die Ausführungsdauer bestimmen. Das klappt 
bei mir wunderbar!

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man ein (Speicher-) Oszi hat!

Autor: MC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, du kannst die Routine in einer Endlosschleife aufrufen und immer auf 
das erste Pin-Toggle mit dem Oszi triggern. Wenn das schnell genug ist 
(was es eigentlich sein sollte, außer man hat Routinen, die in der 
Abarbeitung ein paar Sekunden dauern), kann man auch ohne Speicheroszi 
die Zeit bestimmen.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...und wenn man gar kein Oszi hat ...?
Jetzt komm bitte nicht mit Vorschlag, ich soll mit 'ner Stopp-Uhr da 
sitzen!!!

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Status Pin von de RS232 benutzen und auffem PC ne Software schreiben! ;)

Autor: MC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Jetzt komm bitte nicht mit Vorschlag, ich soll mit 'ner Stopp-Uhr da
sitzen!!!

Es war doch nur ein sehr einfach umsusetzender Vorschlag!!! Reg dich 
doch darüber nicht so auf! Du kannst das ja so lösen, wie du möchtest.

Autor: Til (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutz doch nen Timer, ich weiß ja jetzt nicht welche CPU du einsetzt, 
aber prinzipiell gehst du folgendermaßen vor:
1. Timer so initialisieren, das du z.B. einen 1 msec Interrupt bekommst, 
dabei ist der Reloadvalue 1000 und die Frequenz des Timers 1 MHz.
2. In der Timer Interrupt Routine wird eine globale Variable, z.B. Time, 
inkrementiert.
3. In einem einfachen Fall zählt dein Timer hoch. Dann kannst du jetzt 
Zeiten in usec messen, also Time*1000 + aktueller Zählwert im Timer

Eigentlich ganz easy, so vom Prinzip her mach ich das auch.

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Jetzt komm bitte nicht mit Vorschlag, ich soll mit 'ner Stopp-Uhr da
> sitzen!!!

Hey, das ist gar keine so dumme Idee :D
Unter der Voraussetzung, dass du die Stoppuhr etwas 'modifizieren' 
kannst weil du dafür sonst keine Verwendung hast und das Teil eh nur im 
Regal verstaubt: Ersetz doch die Start- und Stop-Tasten mit jeweils 
einem Transistor. Oder versuch sie direkt an die Pins deines 
Microcontrollers zu hängen. Sollte doch funktionieren?
Das nur so als theoretische Überlegung am Rande.... ;)

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tz. Einfach Pin auf 1 setzen, Funktion mehr oder weniger oft aufrufen, 
Pin auf 0 setzen und mit einer Stoppuhr messen. Anschließend die 
gemessene Zeit durch die Anzahl der Funktionsaufrufe teilen und fertig. 
Je länger der gemessene Zeitraum ist, desto genauer (Also kann ruhig 10 
Sekunden lang die Funktion in einer Schleife aufgerufen werden). Und 
wenn du das öfter wiederholst und den Mittelwert bildest, wirds auch 
genauer.

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.