' schrieb:Hast du eine Ahnung, woran das liegen könnte, dass sich das Programm beim Starten aufhängt? Es zeigt auch keine Werte an.
Am Schieberegister liegts bestimmt nicht, es muß irgend etwas mit dem Devive/demKanal/dem Port zu tun haben.
Die 1ms Schleifenrate wird übrigens nicht geschafft. Es ist realistischer, geich 2ms statt 1ms vorzugeben.
Es ist keine gute Programmierpraxis, den Task immer wieder neu zu initialisieren und zurückzusetzen. Besseres Beispiel siehe unten.
Wenn das Schieberegister nicht initialisiert wird, macht die Zählung beim neuen Eintritt in die Schleife an genau der Stelle weiter, wo sie aufgehört hatte. Es tritt also, wenn man langfristig die Summer aller Flanken zählen würde, kein Fehler auf - vorausgesetzt natürlich, die große Schleife ist schnell genug, so daß keine nennenswerte Pause entsteht.
Die Flankenzählung funktioniert so bis zu Taktfrequenzen von ca. 200Hz - mäanderformiger Verlauf vorausgesetzt. Sollte sie höher sein, dann muß man ganz anders takten.
Die bessere Methode ist auf alle Fälle, den in die Karte eingebauten Counter für die Flankenzählung zu verwenden. Das funktioniert dann bis in den MHz-Bereich hinein.