Mach's nicht zu kompliziert.
In der an sich beliebigen Timer ISR fragst du jedesmal den Taster ab.
Hat er den gleich Zustand wie zuvor, zählst du auf einen Zähler eins drauf.
Wenn nicht, Zähler wieder auf Null und neuen Zustand merken.

erreicht der Zähler nun irgendeinen ausreichenden Wert (bißchen rechnen, schätzen und probieren) gilt der Zustand 1 oder eben 0.