#include <TM1637.h>
#include <time.h>
const int CLK1 = 2;
const int DIO1 = 3;
TM1637 m1(CLK1, DIO1);
const int CLK2 = 10;
const int DIO2 = 9;
TM1637 m2(CLK2, DIO2);
void setTime(long year, int month, int day, int hour, int minute, int second){
struct tm timeinfo = {0};
timeinfo.tm_year = year-1900;
timeinfo.tm_mon = month-1;
timeinfo.tm_mday = day;
timeinfo.tm_hour = hour;
timeinfo.tm_min = minute;
timeinfo.tm_sec = second;
set_system_time(mktime(&timeinfo));
}
void setup() {
m1.init();
m1.set(BRIGHT_TYPICAL);
m2.init();
m2.set(BRIGHT_TYPICAL);
setTime(2023,9,3,17,42,0);
}
uint32_t prev;
void loop() {
time_t now = time(NULL);
struct tm *tptr = localtime(&now);
uint32_t s = millis() / 10;
m1.display(0, tptr->tm_hour / 10);
m1.display(1, tptr->tm_hour % 10);
m1.display(2, tptr->tm_min / 10);
m1.display(3, tptr->tm_min % 10);
m2.display(0, tptr->tm_sec / 10);
m2.display(1, tptr->tm_sec % 10);
m2.display(2, (s / 10) % 10);
m2.display(3, s % 10);
if(micros() - prev >= 1000000){
system_tick();
prev = micros();
}
}