Interrupt und Debaounce für Stromzähler

Hab jetzt mal ein Programm zum Testen geschrieben, Variable läuft auber nur hoch

const int SoeinsPin     =2;       // Initalisierung S0 für Zähler 1
int impuls=0;                     // Impulsarray zum Zählen der Impulse {S0<1>,S0<2>,S0<3>)
int ausgabe = 5000; 
 
void setup() {
 pinMode(SoeinsPin, INPUT);        // Definieren was SoeinsPin ist (Ein o. Ausgang?)
 Serial.begin(9600);
 attachInterrupt(0, zaehleneins, FALLING);  //Interrupt wird ausgelößt bei Positiver Flanke und springt in Programm zaehlen1 0 = Digital 2
 }
  
void loop() 
 { 
 ausgabe--;
 if (ausgabe==0)
   {
     ausgabe=5000;
     Serial.print("Impulse = " );                       
     Serial.print(impuls);      
     Serial.print("\t KWh = ");      
     Serial.println(impuls/1000);  
   }   
 }
void zaehleneins()                              //Unterprogramm zum Impulse Zählen
 {
 impuls++;
 }

Was ist denn da falsch gelaufen?