#ifndef SSEG_HPP #define SSEG_HPP #include "TM1640/TM1640.h" #include #define SSEG_PIN_DATA GPIO_NUM_10 #define SSEG_PIN_CLK GPIO_NUM_11 static const char *SSEG_TAG = "sseg_driver"; TM1640* sseg = nullptr; void init_sseg() { sseg = new TM1640(SSEG_PIN_DATA, SSEG_PIN_CLK, 8); } void set_game_timer(unsigned int value, int dot_pos) { if (sseg == nullptr) { ESP_LOGE(SSEG_TAG, "SSEG display not initialized"); } for (int i = 0; i < 4; i++) { auto idx = value % 10; sseg->sendChar(3-i, TM16XX_NUMBER_FONT[idx], i == dot_pos); value = value / 10; } } void set_module_timer(unsigned int value, int dot_pos) { if (sseg == nullptr) { ESP_LOGE(SSEG_TAG, "SSEG display not initialized"); } for (int i = 0; i < 4; i++) { auto idx = value % 10; sseg->sendChar(7-i, TM16XX_NUMBER_FONT[idx], i == dot_pos); value = value / 10; } } #endif /* SSEG_HPP */