2012-07-28 09:21:37 +02:00
|
|
|
#include "blinker.h"
|
|
|
|
|
|
|
|
Blinker::Blinker()
|
2013-12-17 20:48:07 +01:00
|
|
|
: red_(0), red_reload_(0),
|
2013-12-27 21:35:37 +01:00
|
|
|
green_(0), green_reload_(0) {
|
2012-07-28 09:21:37 +02:00
|
|
|
}
|
|
|
|
|
2013-12-27 21:35:37 +01:00
|
|
|
void Blinker::tick() {
|
2013-12-17 20:48:07 +01:00
|
|
|
uint8_t combined = red_ | green_;
|
2013-12-27 21:35:37 +01:00
|
|
|
|
2013-12-17 20:48:07 +01:00
|
|
|
if (combined <= 1) {
|
|
|
|
red_ = red_reload_;
|
|
|
|
green_ = green_reload_;
|
2012-07-28 09:21:37 +02:00
|
|
|
}
|
|
|
|
|
2013-12-17 20:48:07 +01:00
|
|
|
update((red_ & 1) != 0, (green_ & 1) != 0);
|
|
|
|
red_ >>= 1;
|
|
|
|
green_ >>= 1;
|
2012-07-28 09:21:37 +02:00
|
|
|
}
|