Arduino Zeitmessung Problem(millis)?
Ich möchte berechnene wir lange mein code für einen Durchlauf braucht
Aber ich jetzt möchte die Zeit berechnen die es braucht um nur einen Teil des Codes zu machen
Das funktioniert aber nicht weil der millis Timer immer zählt und nicht pausierbar ist oder auch nicht veränderbar
Gibt es eine möglichkeit einen bestimmten Abschnitt zu berechnen ? Also halt nicht die ganze Loop ? Bin ich unfähig? Oder gibt es die Möglichkeit den Timer zu pausieren?
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.
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.
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.
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
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?