我正在编写代码,要求我在Arduino Mega上准确运行某些代码(就像一个8ms长的循环)。我试图弄清楚如何通过找出Mega进行一次计算所需的时间并将其乘以某个代码块中的计算数来计算出来。这是解决这个问题的正确方法吗?我如何计算正在进行的计算?
答案 0 :(得分:1)
实现计时器的最简单方法之一是在millis()
函数中使用loop()
并将其与上次代码运行时进行比较,如下所示:
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 ms产生一次中断。中断编程变得有点复杂,但上面显示的时序循环技术应该适用于大多数不需要绝对精度的事情。