Damit du was bei lernst, musst du das Programm schon selber schreiben...

aber ich geb dir ein paar Tips:
- wie kann ich den nachfragen ob flanke nun oben oder unten ist?
Die Flanke hat kein oben oder unten, sondern nur eine Richtung:
Flanke nach oben oder Flanke nach unten. Das ist genau der Moment, in dem von Low nach High bzw. von High nach Low umgeschaltet wird.
Der externe Interrupt-Eingang reagiert auf steigende Flanken (d.h auf Wechsel von Low nach High). Wie du Interrupts verwendest, findest du auf www.sprut.de

- wie stope ich den timer?
Es gibt ein Register, in dem die globalen Eigenschaften der Timer stehen. In diesem Register gibt es auch ein "Timer enable". Du musst darauf achten, dass du evtl. einen 16-bit-Timer verwenden musst; das hängt aber von deinem takt ab.

- wie erstelle ich den die abfrage richtig?
Wenn ein Interrupt ausgelöst wird, springt das Program an die ISR-Einsprungadresse. Das ist beim PIC nur eine. Du musst also selber unterscheiden, was für ein Interrupt das war. Dazu musst du schaun, ob im Interrupt-Service-Register das für den ext. Interrupt entsprechende Bit gesetzt ist. Die Abfrage geht wie oben schon beschrieben über "Test Bit, skip if clear" bzw. "Test Bit, skip if set" (btfsc bzw. btfss).