Prvni verze pro otestovani oneshot a periodic rezimu
This commit is contained in:
@ -21,11 +21,33 @@ uint32_t Interval::elapsed(void)
|
||||
|
||||
bool Interval::expired(void)
|
||||
{
|
||||
|
||||
if ((millis() - _timefrom) >= _timeout)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
bool result = false;
|
||||
if (_done)
|
||||
{
|
||||
if (1 == mode)
|
||||
{ // oneshot mode
|
||||
if ((millis() - _timefrom) >= _timeout)
|
||||
{
|
||||
_done = 0;
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
else if (2 == mode)
|
||||
{ // periodic mode
|
||||
if ((millis() - _timefrom) >= _timeout)
|
||||
{
|
||||
result = true;
|
||||
_timefrom = millis();
|
||||
_timeout = _reload;
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // compatibility mode
|
||||
if ((millis() - _timefrom) >= _timeout)
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void Interval::set(uint32_t tmout)
|
||||
@ -34,6 +56,28 @@ void Interval::set(uint32_t tmout)
|
||||
_reload = tmout;
|
||||
_timefrom = millis();
|
||||
_timeout = _reload;
|
||||
_mode = 0;
|
||||
_done = 0xff;
|
||||
}
|
||||
|
||||
void Interval::setOneshot(uint32_t tmout)
|
||||
{
|
||||
|
||||
_reload = tmout;
|
||||
_timefrom = millis();
|
||||
_timeout = _reload;
|
||||
_mode = 1;
|
||||
_done = 0xff;
|
||||
}
|
||||
|
||||
void Interval::setPeriodic(uint32_t tmout)
|
||||
{
|
||||
|
||||
_reload = tmout;
|
||||
_timefrom = millis();
|
||||
_timeout = _reload;
|
||||
_mode = 2;
|
||||
_done = 0xff;
|
||||
}
|
||||
|
||||
void Interval::reload(void)
|
||||
|
Reference in New Issue
Block a user