Forum: FPGA, VHDL & Co. Aus FT245RL Byte für Byte lesen


von Willi S. (Gast)


Lesenswert?

Hallo,

habe wieder mal eine Frage bzgl. dem Lesen aus einem FT245RL. Ich 
benutze hierfür den CDM (Combined Driver Model) mit der FTD2xx DLL. Es 
ist wirklich sehr bequem mit Hilfe der zur Verfügung gestellten 
Funktionen zu programmieren. Mit dem VCP habe ich es nicht zu 100% 
hinbekommen, aber die Geschwindigkeit von ca. 300kByte/sek. wäre ja 
ohnehin nicht so berauschend.

Aber nun zum eigentlichen Problem! Im Programmierhandbuch der D2xx.dll 
stehen die Methoden in der Sprache C detailiert drin.
Ich programmiere zur Zeit in VB6. Das ist im Grunde kein Problem. Der 
Loopback-Test funktioniert 1A und alle anderen Funktionen funktionieren 
nach erfolgter Deklaration auch.
Die Funktion "FT_Read" bekommt als Argument den Handler (Nummer, die das 
FT245RL genau repräsentiert), ReadBuffer(hier wird der gelesene Inhalt 
gebuffert), BytesToRead (gewünschte Anzahl von Bytes, die gelesen werden 
sollten) und zum Schluss als Parameter noch BytesRead (tatsächliche 
Anzahl von Bytes, die definitiv gelesen worden sind). Wenn alles 
geklappt hat und BytesToRead und BytesRead ident sind, wird von der 
Funktion 1 bzw. FT_OK zurückgegeben. Das habe ich richtig verstanden.

Das Problem, was ich jetzt habe ist, dass es in VB6 keine Referenzen 
gibt (so wie in C). Im Programmierhandbuch wird ein statisches Feld 
dieser Read-Methode zurückgegeben, die dann, sofern ich das recht 
verstehe, Byte für Byte in dieses Feld abspeichert. Ich kann in VB6 aber 
nur eine Variable als Buffer nehmen.
Bei mir beispielsweise ergeben jeweils 4 Bytes eine ganze Zahl. Deshalb 
darf ich nur ein Vielfaches von 4 Bytes aus dem FT245RL lesen. Zuerst 
kommt das niederwertigste Byte und zum Schluss das höherwertigste Byte.

Wenn ich jetzt zum Beispiel 256 Bytes mit FT_Read lese, werden in der 
Buffervariable alle 256 Bytes drin stehen. Jedoch weiß ich nicht, wie 
ich die dann zu einzelnen Dezimalzahlen zusammenstoppeln soll. In C wäre 
das ja kein Problem, da es dort Referenzen gibt und ich einen Buffer in 
Form eines ganzen Feldes übergeben könnte, der mir die einzelnen Bytes 
hält - sofern ich das richtig verstanden habe.

Ich hoffe, ich habe mein Problem einigermaßen präzise geschildert und 
nicht zu viel unnötige Informationen gepostet. Ich habe nur deswegen so 
viel geschrieben, weil ich zeigen wollte, dass ich trotz intensiver 
Überlegungen eine kleine Hilfe brauche!

Danke!

lg,
Willi

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich programmiere zur Zeit in VB6.
Falsches Forum?
Besser dort fragen: 
http://www.mikrocontroller.net/forum/pc-programmierung

von Willi S. (Gast)


Lesenswert?

Danke für den Hinweis! Da das FT245RL mit einem FPGA von Altera (APEX) 
kommuniziert, hat mich das etwas verwirrt!

lg,
Willi

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
Noch kein Account? Hier anmelden.