Na ja, wenn du ein Taster bedienst, dann musst du den entprellen.
Schau dir mal den Debounce Befehl an. Dabei wird Prellen weggefiltert und eine Sub aufgerufen, wenn zwischendurch der Pegel mal anders war.
Wenn du die Flanken von einem Geber bekommst, würde ich einen externen Interrupt Eingang nehmen
In beiden Fällen in der ISR eine Variable hochzählen.

Gruß

Rolf