Wow - das sieht nach einem gigantischen Flieger aus 
Ich wusste nicht, dass Du mit Print arbeitest. Dieser Befehl braucht immer ene ganze Zeit - und so wie der Code gerade ist, wird der Print-Befehl nach jedem (!) Impuls ausgeführt. Das heißt etwa 50 mal pro Sekunde. Das könnte problematisch sein.
Du könntest mal zwei Zähler etablieren (z.B. Z1 und Z2 als Bytes). In den Interrupt-Routinen lässt Du Z jedesmal um eins hochzählen, wenn ein Impuls fertig ist.
In der Hauptroutine könntest Du dann so dafür sorgen, dass z.B. nur nach jedem 50. Impuls grprintet wird. Also insgesamt etwa so:
Code:
...
...
Do
If Flag1 = 1 then
Flag 1 = 0
Impuls1 = Stop1 - Start1
If Z1 = 50 then
Print Impuls
Z1 = 0
End if
End if
(analog das gleiche für Start2, Stop2, Impuls2 und Z2)
Loop
...
Impuls1:
If Pind.2 = 1 Then
Start1 = Timer2
Else
Stop1 = Timer2
Flag1 = 1
Z1 = Z1 + 1
End If
Return
...
...
Sonst fallen mir auf den ersten Blick keine Fehler auf...
Lesezeichen