我正在尝试基于Arduino代码在C ++中创建一个PID控制器。原始代码使用函数millis()来检索arduino运行的毫秒数。如果在C ++中有相同的内容,我很好奇。
我感谢任何帮助,我是C ++的新手。
答案 0 :(得分:2)
您应该能够使用std :: chrono库(从c ++ 11开始)完成您所需的一切
#include <chrono>
#include <iostream>
int main()
{
auto start = std::chrono::system_clock::now();
do_sth();
auto end = std::chrono::system_clock::now();
std::cout << "do_sth() "
<< std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()
<< "ms.\n";
}
答案 1 :(得分:0)
我为 chrono 库制作了一个简单的包装类,以便于获取经过的时间:
#include <chrono>
class Stopwatch {
private:
chrono::time_point<chrono::system_clock> start_time;
public:
void start() {
start_time = std::chrono::system_clock::now();
}
long elapsed_time() {
return std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::system_clock::now() - start_time).count();
}
};
所以当你必须测量时间时,你可以这样使用:
Stopwatch s;
s.start();
// Do some stuff here...
cout << "Elapsed time in millis: " << s.elapsed_time();