#include <Tiseg.h>
const uint8_t digitPins[] = {
13, 12, 11, 10
};
// A B C D E F G DP
const uint8_t segmentPins[] = {
2, 3, 4, 5, 6, 7, 8, 1
};
Tiseg<4> display(digitPins, segmentPins);
TisegTimerControl timer(9);
int seconds = 0;
void setup() {
display.begin();
timer.begin();
display.printR(0, true); // 0000
}
void loop() {
display.tick();
timer.tick();
// Первое нажатие — запуск
if (timer.justStarted()) {
for (seconds = 0; seconds <= 60; seconds++) {
// Во время работы без ведущих нулей
display.printR(seconds, false);
// Дошли до 60
if (seconds == 60) {
timer.pause();
break;
}
// Одна секунда
// Дисплей и кнопка продолжают работать
if (!timer.wait(1000, display)) {
break;
}
}
}
// Второе нажатие или достижение 60
if (timer.justPaused()) {
// Например 0012 или 0060
display.printR(seconds, true);
}
// Третье нажатие — сброс
if (timer.justReset()) {
seconds = 0;
display.printR(0, true); // 0000
}
}