千();阿杜诺 "out of scope"

millis(); Arduino "out of scope"

我已经建立了一个自定义时钟/气象站。但出于几个目的,我希望能够在我的代码中使用 运行 计时器。我以前在 C++ 中使用 SDL 库 (SDL_GetTicks()) 做过很多次。而且我知道我可以通过使用 millis() 在 Arduino IDE 中以相同的方式获得滴答声。

所以我只是复制粘贴了我以前的计时器的代码 class 我用于 SDL 程序并且只是用 millis() 替换了 SDL_GetTicks()。

但是,现在它说 millis() 超出了范围。哪个我不明白? 我不允许在成员变量中使用 millis 吗?

#include "Timer.h"

namespace Timer
 {
void Timer::startTimer() 
{
if (!this->timerStarted) 
{ 
  this->current_time = millis(); 
  this->timerStarted = true; 
}
} 

 unsigned int Timer::showTimePassed() 
{ 
 this->time_passed = millis(); 
 return this->time_passed - this->current_time; 
}

bool Timer::ifTimePassed(unsigned int timePassed)
{
this->last_time = millis();
if (!this->timerStarted)
{
  this->current_time = millis();
  this->timerStarted = true;
}

if (this->timerStarted == true && this->last_time >= this->current_time + timePassed)
{
  timerStarted = false;
  return true;
}
return false;
}

void Timer::setLoop()
{
this->timerStarted = true;
this->last_time = this->current_time;
this->current_time = millis();
this->time_passed = this->current_time - this->last_time;
}

unsigned int Timer::getLoopTime()
{
return this->time_passed;
}
}

您必须在头文件中包含 arduino.h,这应该可以解决问题。

#include