blk_box_tc/main/drivers/sseg.hpp
2024-07-28 18:19:16 -05:00

40 lines
960 B
C++

#ifndef SSEG_HPP
#define SSEG_HPP
#include "TM1640/TM1640.h"
#include <esp_log.h>
#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 */