Interrupt and timer on PIC16F690
I think your problem is that you are setting the interrupt edge on the rising edge.

OPTION_REG.INTEDG = 1 ;


So, when the interrupt service routine is called, the signal will have a '1' value, so the following if,

if(RA2 == 1 ){
  PORTB = 0 ;
}


Is never true, so portb is never written to '0' value.