#include "SevSeg.h"
#define PULSE_PIN 4
SevSeg sevseg;
volatile uint32_t pulseCount = 0;
volatile uint32_t lastPulseTime = 0;
void IRAM_ATTR onPulse() {
uint32_t now = millis();
if (now - lastPulseTime > 50) {
pulseCount++;
lastPulseTime = now;
}
}
void setup() {
byte numDigits = 4;
byte digitPins[] = {32, 33, 25, 26};
byte segmentPins[] = {12, 13, 14, 27, 16, 17, 18, 255};
sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins, false, false, true);
sevseg.setBrightness(90);
pinMode(PULSE_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(PULSE_PIN), onPulse, FALLING);
}
void loop() {
sevseg.setNumber(pulseCount, 0);
sevseg.refreshDisplay();
}