#ifndef TIMER_H #define TIMER_H #include #include "ui.h" namespace esp32 { namespace timer { struct ClockState { uint32_t startMs = 0; // 起始时间 uint32_t elapsedMs = 0; // 当前经过时间 static const int MAX_LAPS = 12; uint16_t lapCount = 0; float lapAngles[MAX_LAPS]; // 存储圈记录的角度(秒针位置) uint32_t lapMs[MAX_LAPS]; // 每次记录的时间戳 (ms) bool running = true; }; void init(ClockState& s); void reset(ClockState& s); void update(ClockState& s, uint32_t nowMs); void addLap(ClockState& s); void buildScene(const ClockState& s, esp32::ui::DisplayList& out, int16_t screenW, int16_t screenH); } // namespace timer } // namespace esp32 #endif // TIMER_H