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 {
int8 timer = 0, currentTimer = 0;
void start() {
currentTimer = timer;
auto displayTimer = []{
if (currentTimer >= 0) {
clockDisplay.print(currentTimer--, DEC);
int8 timer = 0, current = 0;
Task tDisplayTimer(SECONDS(10), 2,
[]{
if (current >= 0) {
clockDisplay.print(current, DEC);
clockDisplay.writeDisplay();
}
};
tDisplayTime.setInterval(MINUTES(1));
tDisplayTime.setCallback(displayTimer);
tDisplayTime.restart();
}, &ts, false,
[]{
tDisplayTime.disable();
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() {
tDisplayTime.setInterval(MILLISECONDS(500));
tDisplayTime.setCallback(displayTime);
tDisplayTime.restart();
tTimer.disable();
}
}