Как измерить скорость выполнения функции Arduino?
Мне нужно определить скорость, с которой Arduino выполняет определенную функцию.
какое было бы лучшее время для этого? До сих пор я нашел что-то с классом секундомера, но мне интересно, есть ли какой-либо собственный метод для этого.
2 ответов
простой способ-использовать millis()
или micros()
функция в библиотеке Arduino. У вас будет более тонкий результат зерна с micros()
.
например:
unsigned long start = micros();
// Call to your function
myFunction();
// Compute the time it took
unsigned long end = micros();
unsigned long delta = end - start;
Serial.println(delta)
внимательно прочитайте документацию micros()
: есть некоторая информация о временном разрешении.
наименее навязчивый способ-установить штырь порта высоким перед вызовом функции и низким после этого. Поместите осциллограф на штырь порта и измерьте время.
Это также может дать вам хорошее качественное представление о изменчивости времени выполнения, запустив на восходящем крае и наблюдая дрожание на падающем крае.