ok, ich hab mir dann doch nochmal das 1. Bild (FPGA-VI-Source-Code) angeschaut.
Es ist genau so wie ich in meinem
Beitrag #6 beschrieben habe. Im FPGA ist eine State-Machine, zumindest kann ich den State "write" sehen. Dieser State versucht eine festgelegte Anzahl von Bytes aus dem Puffer zu lesen und in eine andere Node zu schieben. Ich kann nicht erkennen was das für eine ist, aber ich vermute mal RS323 oder RS485. Wenn der FIFO leer ist, dann setzt er das "Timed Out" flag und geht weiter zum IRQ, der bestätigt werden muss.
Beim ersten Durchlauf der Schleife passiert folgendes: der FIFO ist leer, die For-Schleife geht nach dem ersten FIFO-Read in den Timeout, läuft für die eingestellte Anzahl Bytes - 1 ohne zu lesen und zu schreiben und geht anschließend zum IRQ-Wait. Dort wartet das FPGA-VI bis der IRQ-Ack kommt.
Wenn dann vom RT-VI der FIFO befüllt wird und der IRQ-Ack gesetzt wird startet die While-Loop die nächste Iteration und schreibt die Bytes aus dem FIFO auf den Port. Wenn die For-Loop die eingestellte Anzahl Iterationen durchlaufen hat (mit oder ohne Timeout) wird der 2. Sequenz-Schritt ausgeführt und das VI wartet wieder auf den IRQ-Ack ...
Wenn ich jetzt mal davon ausgehe dass es sich um RS485 handelt, dann ist das ganze einfach eine Methode um auf dem RT-VI eine Reihe von Bytes, die auf den Bus geschrieben werden soll, in einen Puffer zu packen und vom FPGA-VI ausgeben zu lassen.
viele Grüße
cb