Probier´s mal so:

Code:
$regfile = M8ref.dat
$crystal = 1000000

Config Int0 = Rising                                        'Interrupt bei Impulsbeginn
On Int0 Impuls_start
Enable Int0

Config Int1 = Falling                                       'Interrupt bei Impulsende
On Int1 Impuls_stop
Enable Int1

Enable Interrupts

Config Timer0 = Timer , Prescale = 8


Dim Kanal As Byte                                           'Kanal = Zählvariable'
Dim Impuls(5) As Word                                       'Array für bis zu 5 Impulswerte


Do                                                          'Hier ist Platz für´s Hauptprogramm :-)

Loop


Impuls_start:                                               'Irgendein Impuls beginnt:
Start Timer0                                                'Timer beginnt zu zählen

Kanal = Pinc                                                'An welchem Port ist der Impuls?
Kanal = Kanal And &B00011111                                'Sicherheitshalber Löschen der Bits 7, 6 und 5

Select Case Kanal
Case 4 : Kanal = 3                                          'd.h. PortC war 00000100
Case 8 : Kanal = 4                                          'd.h. PortC war 00001000
Case 16 : Kanal = 5                                         'd.h. PortC war 00010000                                                            
Case Else                                                 
End Select

Return



Impuls_stop:                                                'Ende des Impulses:
Stop Timer0                                                 'Timer anhalten,

Impuls(kanal) = Timer0                                      'Wert retten und Array-Variabler zuweisen,
Timer0 = 0                                                  'und Timer rücksetzen.

Impuls(kanal) = Impuls(kanal) * 8                           'Umrechnung in µS

Return
Als Ergebnis stehen Dir dann Impuls(1) bus Impuls(5) zur Verfügung.

Gruß,

Daniel