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:
Sonst fallen mir auf den ersten Blick keine Fehler auf...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 ... ...







Zitieren

Lesezeichen