25.07.2016, 13:51
Hallo,
ich bin derzeit dabei ein Programm zu erstellen, mit dem ich aus dem cRIO-9074 (mit DI-Modul NI-9411 und DO-Modul NI-9474) ein Pulse Pattern Generator erstelle. Also in der Host-VI lässt sich eine Frequenz und eine Anzahl von Perioden einstellen. Diese Werte werden dann an die FPGA-VI übergeben, um dort die Ausgänge zu schalten. An sich ist mein Programm auch funktionsfähig, allerdings werden sporadisch nicht immer die eingestellten Perioden gesendet, sonder weniger. Werden z.B. 100 Perioden eingestellt, so werden nur 99 gesendet. Dies sehe ich zum einen auf einem Oszilloskop und zum anderen an einem Gerät mit dem ich die Flanken zähle.
Wenn ich anstatt von 100 gewünschten Perioden 10 einstelle, dauert es länger bis der Fehler auftritt, also das nur 9 Perioden gesendet werden, aber er tritt dennoch auf.
Was mich außerdem wundert ist, dass in der tdms-Datei die ich erstelle, in der der Wert der ausgegebenen Perioden gespeichert wird, immer der eingestellte Wert steht. Also auch wenn nur 99 Perioden gesendet werden, wird eine 100 in der tdms-Datei abgespeichert. Daraus schließe ich eigentlich, dass das Programm auf dem FPGA richtig arbeitet, aber am Ausgang fehlt halt die eine Periode.
Der Quellcode des FPGA-Programms der Code des Programms welches auf dem Host befindet sich im Anhang.
Hast jemand eine Idee woran das liegen könnte?
ich bin derzeit dabei ein Programm zu erstellen, mit dem ich aus dem cRIO-9074 (mit DI-Modul NI-9411 und DO-Modul NI-9474) ein Pulse Pattern Generator erstelle. Also in der Host-VI lässt sich eine Frequenz und eine Anzahl von Perioden einstellen. Diese Werte werden dann an die FPGA-VI übergeben, um dort die Ausgänge zu schalten. An sich ist mein Programm auch funktionsfähig, allerdings werden sporadisch nicht immer die eingestellten Perioden gesendet, sonder weniger. Werden z.B. 100 Perioden eingestellt, so werden nur 99 gesendet. Dies sehe ich zum einen auf einem Oszilloskop und zum anderen an einem Gerät mit dem ich die Flanken zähle.
Wenn ich anstatt von 100 gewünschten Perioden 10 einstelle, dauert es länger bis der Fehler auftritt, also das nur 9 Perioden gesendet werden, aber er tritt dennoch auf.
Was mich außerdem wundert ist, dass in der tdms-Datei die ich erstelle, in der der Wert der ausgegebenen Perioden gespeichert wird, immer der eingestellte Wert steht. Also auch wenn nur 99 Perioden gesendet werden, wird eine 100 in der tdms-Datei abgespeichert. Daraus schließe ich eigentlich, dass das Programm auf dem FPGA richtig arbeitet, aber am Ausgang fehlt halt die eine Periode.
Der Quellcode des FPGA-Programms der Code des Programms welches auf dem Host befindet sich im Anhang.
Hast jemand eine Idee woran das liegen könnte?