什么是C ++中的millis()

时间:2018-04-11 22:59:21

标签: c++ arduino

我正在尝试基于Arduino代码在C ++中创建一个PID控制器。原始代码使用函数millis()来检索arduino运行的毫秒数。如果在C ++中有相同的内容,我很好奇。

我感谢任何帮助,我是C ++的新手。

2 个答案:

答案 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();