Pulsante, interrupt e led

Il massimo aiuto che ti so dare, visto che non so programmare a basso livello, è dirti che:
1)credo che il tuo programma non vada perché, tra l'altro, la funzione di interrupt è chiamata FALLING, quindi agisce quando il pulsante viene rilasciato (almeno se esso risulta normalmente aperto), mentre a te pare interessi funzioni alla pressione.
2)con il debounce hardware dei pulsanti il programma sarebbe potuto venire (penso) una cosa del tipo:

#define LED 13//define dovrebbe sostituire a ogni volta che trova la stringa scritta prima tra i due spazi (nel caso LED) con quello scritto dopo di essa (nel caso il numero tredici, ma può essere una stringa o un insieme di funzioni)
void setup()
{
attachInterrupt(0, funzione, RISING);
pinMode (13, OUTPUT);//su Arduino Uno un led sul pin 13 è già posto
}
void loop()
{
}
void funzione()
{
digitalWrite (LED, !digitalRead (LED));
}

Mi scuso per la non indentazione ma non ho usato ide o altro
3)senza i debounce hardware devo fare un minimo di quello software. Per cominciare esso mi basta che sia sulla pressione, e non sul rilascio, quindi posso aggiungere queste cose:
dichiaro una boolean globale volatile che mi dica se la interrupt è intervenuta (indovina dove la alzo)
la loop si compone di un controllo su quella flag, se alta ...
se alta la abbassa, ferma gli interrupts, aspetta abbastanza tempo, e gli riarma.
Non testato, ma a livello teorico va