display timer for 10 secs when started and then continuously when 16 mins are left

This commit is contained in:
Nicu Hodos 2025-02-07 12:13:24 +01:00
parent 06cdca9036
commit 70f92f4d7e

View File

@ -78,25 +78,41 @@ namespace Display {
} }
namespace Timer { namespace Timer {
int8 timer = 0, currentTimer = 0; int8 timer = 0, current = 0;
Task tDisplayTimer(SECONDS(10), 2,
void start() { []{
currentTimer = timer; if (current >= 0) {
auto displayTimer = []{ clockDisplay.print(current, DEC);
if (currentTimer >= 0) {
clockDisplay.print(currentTimer--, DEC);
clockDisplay.writeDisplay(); clockDisplay.writeDisplay();
} }
}; }, &ts, false,
tDisplayTime.setInterval(MINUTES(1)); []{
tDisplayTime.setCallback(displayTimer); tDisplayTime.disable();
tDisplayTime.restart(); return true;
},
[]{
tDisplayTime.enable();
});
Task tTimer(MINUTES(1), TASK_FOREVER,
[]{
current--;
if (current == timer) tDisplayTimer.restart();
if (current == 16) {
tDisplayTimer.setIterations(TASK_FOREVER);
tDisplayTimer.restart();
}
}, &ts, false, nullptr,
[]{
tDisplayTimer.disable();
});
void start() {
current = timer+1;
tTimer.restart();
} }
void stop() { void stop() {
tDisplayTime.setInterval(MILLISECONDS(500)); tTimer.disable();
tDisplayTime.setCallback(displayTime);
tDisplayTime.restart();
} }
} }