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


von Lehrmann M. (ubimbo)


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ß

von STK500-Besitzer (Gast)


Lesenswert?

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

von Lehrmann M. (ubimbo)


Lesenswert?

Also

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

War's so gemeint ?

von Peter D. (peda)


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

von STK500-Besitzer (Gast)


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.

von Matthias Larisch (Gast)


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?

von Michael F. (startrekmichi)


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.

von Heinz V. (fixunfoxi)


Angehängte Dateien:

Lesenswert?

hab deine beiträger gelesen
super abhandlungen

schön gruß von Pisa

von Lehrmann M. (ubimbo)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.