千();阿杜诺 "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
我已经建立了一个自定义时钟/气象站。但出于几个目的,我希望能够在我的代码中使用 运行 计时器。我以前在 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