Hallo allerseits! Ich beschäftige mich gerade mit dem FT232H und möchte die Eingangspuffergröße mittels FT_SetUSBParameters() hochsetzen. Da stehe ich leider auf dem Schlauch - die Funktion ist in dem vorhandenen include-File "FTD2XX.h" nicht referenziert, auch die DLL-Ladefunktion kennt die Routine nicht. Ich nutze das Beispiel "dlpvcc2" (Example 1). Meine Frage ist jetzt: Wo finde ich die Funktion? Viele Grüße Frank13
> die Funktion ist in dem vorhandenen include-File > "FTD2XX.h" nicht referenziert Mal die Datei im aktuellen Treiberpaket angesehen? Die in http://www.ftdichip.com/Drivers/CDM/CDM%202.08.28%20WHQL%20Certified.zip enthält sehr wohl das hier:
1 | FTD2XX_API
|
2 | FT_STATUS WINAPI FT_SetUSBParameters( |
3 | FT_HANDLE ftHandle, |
4 | ULONG ulInTransferSize, |
5 | ULONG ulOutTransferSize |
6 | );
|
Von wann ist Deine "FTD2XX.h"?
Hi, Das war zumindest ein Fehler. Die Headerdatei habe ich ersetzt, die DLL-Aufrufe habe ich auch um den Betreffenden erweitert. Jetzt bekomme ich "nur" noch einen Linkerfehler (nicht aufgelöstes externes Symbol)... Hat da jemand eine Idee? Ich kenne mich mit den VisualC++ Compiler leider nicht sehr gut aus. Ich vermute noch irgendwo einen Verweis in eine alte DLL-Version. Viele Grüße Frank
Frank Bußmann schrieb: > (nicht aufgelöstes externes Symbol) Da fehlt noch die passende Export Libary (lib), die ist im Treiber Zi File mit drin.
Hi, Ich bin schon wieder etwas weiter: Der Funktionsaufruf klappt jetzt (zumindest bekomme ich ein FT_OK zurück) - das Beispiel ist doch ziemlich arg verwurschtelt. Die Lib war schon vorhanden aber der Aufruf der Funktionen geht über eine Unterfunktion die ich übersehen hatte. Ich komme aber immer noch nicht über ca. 4 MByte pro Sekunde, egal was für eine Puffergröße ich nehme. Mal sehen, wo da noch der Wurm steckt... Viele Grüße Frank
Frank Bußmann schrieb: > 4 MByte pro Sekunde Klingt als würdest du pro Transfer nur 512 Byte anfordern. Dann kommt man nämlich ziemlich genau bei 4MB/s raus. Forder mal viel größere Blöcke an. In einen USB HighSpeed Microframe passen bis zu 11 Pakete zu je 512 Byte, erst dann erreicht man die volle Geschwindigkeit. Wenn du weniger pro Transfer anforderst, packt der Controller weniger in den Frame und der Rest des Frames ist verloren.
Hallo allerseits, Ich glaube, ich habe den Fehler endlich eingegrenzt: Das Beispielprogramm ist Murks! Es ist sehr verschachtelt programmiert und absolut schlecht nachzuvollziehen. Mir ist während des Debuggens aufgefallen, dass die Ausleseroutine für den FTDI innerhalb eines periodisch auftretenden Ereignisses implementiert ist in dem auch die Oberfläche aktualisiert wird. Das heißt: Das Ganze wird über einen Timer angestoßen und damit habe ich minimal 1 ms Abfragetakt - und das dabei nichts rumkommt ist klar. Ich werde morgen mal die Ausleseroutine in einen extra Thread auslagern. Für heute reichts... ;-) Vielen Dank für die Hilfe soweit! Manchmal sieht man den Wald vor lauter Bäumen nicht... Viele Grüße Frank13
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.