我想在一个 C++ 类中封装一些与时间相关的 LED 转换(在特定时间后改变颜色),然后我将把它合并到一个 .ino 文件中。在上述课程中,我使用 millis()
来获取开始时间:
void CloudColorChanger::ChangeColorWithTransition(uint32_t oldColor, uint32_t newColor)
{
this->transitionStartTime = millis();
}
每个循环我都会调用那个类的函数来检查当前的转换:
void CloudColorChanger::UpdateColor()
{
// compute the current percentage of transition
transitionCurrentTime = millis();
int deltaTransTime = transitionCurrentTime - transitionDefTime;
// Check if the transition has ended
if (deltaTransTime > transitionDefTime)
{
transitionStartTime = 0;
return;
}
}
这是我的困境:使用 millis()
总是导致 0。如果我在我的 .ino 文件中调用命令,它工作正常。我错过了什么?