mikrocontroller.net

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


Autor: Willi S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Willi S. (Gast)
Datum:

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

lg,
Willi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.