mefore:
capire perchè mi parte l'interrupt al rilascio del pulsante.
L'interrupt parte sul fronte di discesa.
Se parte al rilascio vuol dire che sente un fronte di discesa.
E perché al rilascio, dopo cui dovrebbero esserci i 200ms di pausa per togliere i rimbalzi c'è comunque un fronte di discesa?
L'errore è nel dare per scontato di restare nel while che attende il rilascio.
Ma così evidentemente non è.
Hai filtrato solo i rimbalzi al rilascio, ma non quelli alla pressione.
Quindi al rilascio qualche volta si è già fuori dal while, e i rimbalzi del rilascio vengono visti come pressione.