mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anzahl der Funktionsaufrufe pro Sekunde berechnen / messen


Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

Microcontroller PIC18F4680 mit 40 MHz.

folgendes Problem:

zur korrekten Berechnung eines Wertes muss ich wissen wieoft sich eine 
Funktionsroutine in der Sekunde aufruft.

Nun meine Frage wie ich das realisieren kann ?

Ich programmiere in C.

Gibt es Simulationsprogramme die sowas können ?

Vielen Dank

Gruß

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der übergeordneten Funktion einen Timer starten, der eine Variable 
ausliest und zurücksetzt, die bei jedem Funktionsaufruf inkrementiert 
wird.

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also

1)Timer resetten
2)Timer starten
3)Funktion
4)Funktionsende -> Timer stoppen & auslesen ...

War's so gemeint ?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lehrmann Michael schrieb:
> zur korrekten Berechnung eines Wertes muss ich wissen wieoft sich eine
> Funktionsroutine in der Sekunde aufruft.

Wenn die Anzahl der Aufrufe wichtig ist, dann überläßt man sowas auf 
keinen Fall dem puren Zufall!

Man nimmt einen Timer, der dann exakt die gewünschte Anzahl Aufrufe 
startet.
Je nachdem macht man die Aufrufe dann im Timerinterrupt oder in der 
Mainloop.
In der Mainloop muß man natürlich darauf achten, daß sie im Worst-Case 
auch innerhalb des gewünschten Intervalls fertig ist.


Peter

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>War's so gemeint ?

Nö.
Eher:

Timer starten
Funktion xmal aufrufen, in der Funktion Variable bei jedem Aufruf 
hochzählen
Timer bei 1s anhalten
Variable auslesen, verarbeiten und zurücksetzen.

Autor: Matthias Larisch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein.

In der Funktion einen Counter hochzählen. In übergeordneter Funktion 
Timer zurücksetzen, Counter zurücksetzen. Timer starten, nach 1 Sekunde 
Counter auslesen.

Dennoch lässt dein Ansatz darauf schließen, dass du einen Denkfehler bei 
der Programmierung gemacht hast. Es ist nicht sonderlich schön, eine 
direkte Abhängigkeit der Prozessorgeschwindigkeit zur Funktionalität zu 
haben... Warum benutzt du nicht immer einen Timer, um das Ergebnis 
korrekt zu berechnen?

Autor: Michael Frangenberg (startrekmichi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man könnte auch einen unbenutzten Pin am Anfang der Routine setzen und 
am Ende wieder löschen. Oskar an den Pin und ablesen.

Autor: Heinz Vogel (fixunfoxi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hab deine beiträger gelesen
super abhandlungen

schön gruß von Pisa

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heinz Vogel schrieb:
> hab deine beiträger gelesen
> super abhandlungen

Cool! Danke!

Heinz Vogel schrieb:
> schön gruß von Pisa

Du weißt schon, dass es in der deutschen Rechtschreibung auch 
Großbuchstaben gibt ?. So viel zu Pisa.

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.