#include <Arduino.h>
#include <TM1637TinyDisplay.h>
// Define Digital Pins
#define CLK PB2
#define DIO PB3
// Instantiate TM1637TinyDisplay Class
TM1637TinyDisplay display(CLK, DIO);
#define BUTTON_PIN PB1
void setup() {
// Initialize TM1637
display.begin();
// Set BUTTON_PIN as input with pull-up
DDRB &= ~(1 << BUTTON_PIN); // Input mode
PORTB |= (1 << BUTTON_PIN); // Enable pull-up resistor
}
int main() {
setup();
uint16_t count = 9996; // Counter value
uint8_t buttonState = 0;
uint8_t lastButtonState = 0;
while (1) {
// Read button state
buttonState = (PINB & (1 << BUTTON_PIN)) == 0; // Active LOW button
// Detect button press (rising edge)
if (buttonState && !lastButtonState) {
count++; // Increment count
if (count > 9999) { // Reset to 0 after 9999
count = 0;
}
display.showNumberDec(count); // Update display
}
// Save button state for debounce
lastButtonState = buttonState;
_delay_ms(50); // Debounce delay
}
}