Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何衡量Arduino Mega的运营时间?_Arduino - Fatal编程技术网

我如何衡量Arduino Mega的运营时间?

我如何衡量Arduino Mega的运营时间?,arduino,Arduino,我正在编写的代码要求我在精确的时间运行特定的代码,就像在Arduino Mega上运行8毫秒长的循环一样。我试图通过找出一个Mega进行一次计算所需的时间,并将其乘以某个代码块中的计算量来计算出这个值。这是解决这个问题的正确方法吗?我怎么计算出有多少计算正在进行 实现计时器的最简单方法之一是在循环函数中使用毫秒,并将其与上次代码运行时进行比较,如下所示: long loopTime = 0; loop() { if (millis() - loopTime >= 8) {

我正在编写的代码要求我在精确的时间运行特定的代码,就像在Arduino Mega上运行8毫秒长的循环一样。我试图通过找出一个Mega进行一次计算所需的时间,并将其乘以某个代码块中的计算量来计算出这个值。这是解决这个问题的正确方法吗?我怎么计算出有多少计算正在进行

实现计时器的最简单方法之一是在循环函数中使用毫秒,并将其与上次代码运行时进行比较,如下所示:

long loopTime = 0;
loop()
{
    if (millis() - loopTime >= 8)
    {
        // Do the stuff here that you want to happen every 8ms
        // ...
        //

        // Keep track of the last time this code ran, so we'll run it
        // again 8 ms from now
        loopTime = millis()
    }

    // Do other stuff here
}

请注意,这并不精确,因为millis函数不能保证精确的数字。如果需要绝对精度,则需要使用某种外部硬件计时器每8毫秒生成一次中断。中断编程变得有点复杂,但是上面显示的定时循环技术应该适用于大多数不需要绝对精度的事情。

对于这样长的循环使用CPU定时是非常糟糕的方法。使用计时器。我主要是想弄清楚如何确保我的循环是一个特定的长度。我是否只是使用计时器,不断地修改代码直到我喜欢它?还是有更准确的方法?你自己做了哪些研究?为什么你可以在网络上找到的方法是有效的?你自己做过研究吗?你的实际问题是什么太宽泛了,这不是咨询网站。我只是问如何让一段代码花费一定的时间。我做过研究,只发现了有关延误的信息。这不是我想要的。我想写一个代码循环,并确保它需要8毫秒才能执行。它并没有那么广泛。所以在你的研究中,你没有发现使用定时中断或者像毫秒或微秒这样的函数有用吗?