Arduino Zeitmessung Problem(millis)?


14.12.2020, 18:40

Die dauer der ganzen loop kann ich berechnen aber ich möchte nicht die zeit haben der ganzen Loop sondern wie lange einzelne Teile in der Loop brauchen also z.B möchte ich mit einem Timer ausrechnen wie lange die Hälfte der Loop geht

Ist das auch möglich?

Und da szwischenspeichern geht nicht weil es ja beim ersten mal klappt aber beim zweiten mal hat ja sozusagen die millis funktion trozdem der Teil mitgerechnet den ich nicht haben will weil er ja auch im Code ist

Sorry ich weiss nicht wie ich das besser erklären kann

Hoffe das ist verstänflich

3 Antworten

Reicht es denn nicht, die Laufzeit der ganzen Schleife zu messen und durch zwei zu teilen?

Einfach den timer an dem Zeitpunkt zwischenspeichern von dem du die Zeit wissen willst und die Differenz zur Startzeit berechnen.

micros() ist genauer.


AltFVier  14.12.2020, 20:38

zwar ist micros genauer, jedoch wird auch der aufruf und das berechnen der differenz zeit in anspruch nehmen, dadurch wird die genauigkeit die man gegenüber millis erhält wieder vernichtet.

0

brauchst ja gar nicht pausieren.

du speicherst millis ab am anfang

dann läuft dein loop

dann fragst du die aktuellen millis ab und rechnest die zuvor gespeicherten millis weg.


User1234198 
Fragesteller
 14.12.2020, 18:37

Ja soweit geht alles aber ich möchte nicht die zeit haben der ganzen Loop sondern wie lange einzelne Teile in der Loop brauchen also z.B möchte ich mit einem Timer ausrechnen wie lange die Hälfte der Loop geht

Ist das auch möglich?

0
AltFVier  14.12.2020, 20:36
@User1234198

millis() liefert die aktuelle Zeit des Systems nach Start. egal an welcher Stelle du das aufrufst, wird die aktuelle Zeit ausgelesen. wenn du an zwei stellen egal wo im code diese abfrage machst, und die differenz berechnest, wirst du schon die zeit raus bekommen.

Hierbei sei gesagt, dass millis selbst eine Funktion ist, und auch eine gewisse Laufzeit hat, sowie die Berechnung der Differenz ebenfalls eine kleine Zeit benötigt. Für Laufzeitanalysen ist millis also das Falsche tool, um mal eben kurz die grobe Laufzeit nachzuvollziehen ist es OK

0