MatrixDisplay2025/src/main.cpp
2025-08-07 11:06:15 +02:00

60 lines
970 B
C++

#include <WiFi.h>
#include "Button.h"
#include "mode/Mode.h"
#include "mode/ModeTimer.h"
void stepMode();
void readConsole();
void buttonCallback(ButtonEvent event);
Display display;
ModeTimer mode;
Button button(23, buttonCallback);
void setup() {
WiFi.disconnect();
delay(500);
Serial.begin(115200);
Serial.println("\n\n\nStartup!");
beepSetup();
display.setup();
mode.init();
}
void loop() {
stepMode();
readConsole();
}
void stepMode() {
const uint64_t now = millis();
static uint64_t lastMillis = 0;
const uint64_t deltaMillis = now - lastMillis;
lastMillis = now;
mode.step(deltaMillis);
mode.draw(display);
}
void readConsole() {
const auto code = Serial.read();
if (code == ' ') {
mode.buttonOK();
}
if (code == 'x') {
mode.buttonESC();
}
}
void buttonCallback(const ButtonEvent event) {
if (event == BUTTON_PRESSED) {
mode.buttonOK();
}
if (BUTTON_PRESSED_LONG) {
mode.buttonESC();
}
}