Interrupt und Debaounce für Stromzähler

Ja habs jetzt Rausbekommen. Die Ausgabe ist nachher dran in eine SQL Datenbank + zu wartungszweken noch Seriel.

Hier der Code:

/*#include <SPI.h>                                //includieren der Ethernet Bibiothek
#include <Ethernet.h>                           //includieren der Ethernet Bibiothek
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };         //Mac-Adresse vergeben
IPAddress ip(192,168,1, 177);                   // IP Adresse vergeben
IPAddress gateway(192,168,1, 1);                // Gateway Adresse vergeben
IPAddress subnet(255, 255, 0, 0);               // Subnetmask  
EthernetServer server(23);                      // Telenetport 23 für Monitoring
boolean alreadyConnected = false;               // Status ob verbindung besteht
*/

const int ledpowerPin   =0;       // initalisierung Power LED
                                  // Pin 1 ist nicht belegt (Frei)
const int SoeinsPin     =2;       // Initalisierung S0 für Zähler 1
const int SozweiPin     =3;       // Initalisierung S0 für Zähler 2
const int ledeinsPin    =4;       // Initalisierung LED für S0<1>
const int ledzweiPin    =5;       // Initalisierung LED für S0<2>


// Variablen werden Vorgabewerte zugewiesen
int ledSchalt0 = LOW;              //LED Schaltzustand Power LED
int ledSchalt1 = LOW;              //LED Schaltzustand S0<1>       
int ledSchalt2 = LOW;              //LED Schaltzustand S0<2>
int SchaltzustandS1 = LOW;         // Schalter für Impulsgeber S0<1>
int SchaltzustandS2 = LOW;         // Schalter für Impulsgeber S0<2>
int impuls[]={0,0};                // Impulsarray zum Zählen der Impulse {S0<1>,S0<2>,S0<3>)    


void setup() {
  pinMode(SoeinsPin, INPUT);        // Definieren was SoeinsPin ist (Ein o. Ausgang?)
  pinMode(SozweiPin, INPUT);        // Definieren was SozweiPin ist  
  pinMode(ledpowerPin, OUTPUT);
  pinMode(ledeinsPin, OUTPUT);
  pinMode(ledzweiPin, OUTPUT);     
  digitalWrite(ledpowerPin, HIGH);  // Power LED wird eingeschaltet
  attachInterrupt(0, zaehleneins, RISING);  //Interrupt wird ausgelößt bei Positiver Flanke und springt in Programm zaehlen1 0 = Digital 2
  attachInterrupt(1, zaehlenzwei, RISING);  //Interrupt wird ausgelößt bei Positiver Flanke und springt in Programm zaehlen2 1 = Digital 3
}

void loop() {
    
 } 
  
  
void zaehleneins(){                              //Unterprogramm zum Impulse Zählen
impuls[0]++; 
}

void zaehlenzwei()                              //Unterprogramm zum Impulse Zählen
{
impuls[1]++;
}