Programm Hz?

Hallo Arduino Gemeinte, kann man messen mit welcher Zykluszeit ein Programm abgearbeitet wurde? wen man Daten aufzeichnen möchte ist es auch interessant zu wissen mit welcher Taktfrequenz diese bereitgestellt werden.

Mfg Alex

Das hängt sicherlich stark vom Programm ab. Aber wenn Du eh Daten aufzeichnest, kannst Du ja auch gleich den aktuellen Wert von millis(), bzw. micros() mit speichern. Aus der Differenz von zwei nacheinander aufgezeichneten Werten läßt sich dann gut die Abarbeitungszeit ablesen. Mario.

So mache ich das auch, wenn ich wissen will wie lange eine Funktion läuft.

unsigned long timestamp1, timestamp2;

...

timestamp1 = micros();
// deine zu überwachende Funktion
timestamp2= micros();
Serialprint("Laufzeit Funktion: ");
Serial.println(timestamp2 -  timestamp1) ;

...

oder, wenn du wissen willst in welchen Abständen ein bestimmter Programmteil aufgerufen wird:

unsigned long timestamp1, timestamp2;

...
Serialprint("Letzer Aufruf Funktion vor : ");
Serial.println(micros() -  timestamp1) ;
timestamp1 = micros();

...

Das Serial Print verfälscht diese Ergebnis extrem. Deswegen 5 Durchläufe machen mittelwert von den 5 bilden und im 6ten Durchlauf die Serial.print Ausgabe machen und die Zeiten natürlich nicht Zählen. Damit hast du ein exateres Ergebniss als nur von einem DUrchlauf. Gruß Der Dani