#include <TM1637Display.h>
#include <ArduinoTrace.h>
const int CLK = 2;
const int DIO = 3;
TM1637Display tm(CLK, DIO);
// Segment mapping for digits 0-9
const uint8_t digitSegments[] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
void setup() {
Serial.begin(115200);
tm.setBrightness(0x0f);
}
unsigned int counter = 0;
unsigned long t1, t2;
void loop() {
t1 = micros();
int digits[4];
digits[0] = (counter / 1000) % 10;
digits[1] = (counter / 100) % 10;
digits[2] = (counter / 10) % 10;
digits[3] = counter % 10;
uint8_t segments[4];
for (int i = 0; i < 4; i++) {
segments[i] = digitSegments[digits[i]];
}
tm.setSegments(segments);
counter++;
if (counter == 10000) {
counter = 0;
}
t2 = micros();
DUMP(counter);
DUMP(t2-t1);
delay(100);
}