Stairs/src/modes/alternate.cpp

27 lines
593 B
C++

#include "alternate.h"
#include <Stream.h>
void AlternateMode::init(IStairs* stairs, uint32_t currentTime)
{
stairs->setAll(0);
this->lastChange = currentTime;
this->even = false;
}
void AlternateMode::tick(IStairs* stairs, uint32_t currentTime)
{
if (currentTime - this->lastChange < this->parameters.interval)
return;
this->lastChange = currentTime;
this->even = !this->even;
uint8_t stepCount = stairs->getCount();
for (uint8_t step = 0; step < stepCount; step++)
{
stairs->set(step, ((step % 2) == 0) == this->even ? this->parameters.brightness : 0);
}
}