El antirrebote por soft no es lo que acabas de poner, sino que está formado por una temporización, por ejemplo delay_ms(20), durante la cual esperamos a que nuestro pulsador-interruptor haya dejado de "saltar" y esa temporización viene seguida de una comprobación de nuestro pulsador-interruptor. Si nuestro pulsador-interruptor está a 1 (por ejemplo) entonces realizar el resto del programa, si está a 0 es que se ha metido en la interrupción como consecuencia de un rebote al "soltar" el pulsador, entonces no se ejecutará nuestro programa en el interior de la interrupción y saldrá de la interrupción sin hacer nada.
Un saludo