LabVIEWForum.de - mpusbapi.dll richtig einbinden? V8.5

LabVIEWForum.de

Normale Version: mpusbapi.dll richtig einbinden? V8.5
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich möchte das PICDEM FS USB Demo Board von Microchip mit LV über den mitgelieferten Treiber ansteuern.
Dazu gibt es eine DLL und ein Header-File. Die Funktion "MPUSB Get DLL Version" und "MPUSB Get Device Count" funktionieren.
Leider kann ich keine Daten senden und auch nicht empfangen. An die Funktion "MPUSB Write" muss dabei ein Pointer übergeben werden.
Ich habe hier gelesen, dass ich das mit einem Array machen kann, vielleicht habe ich mir aber an dieser Stelle einen Fehler eingebaut.

Vermutlich habe ich aber schon bei der Funktion "MPUSB Open" ein Problem. Hier muss man unterscheiden, ob man Lesen oder Schreiben will. Die Funktion gibt aber immer den gleichen Handler zurück, auch wenn gar kein Device am USB angeschlossen ist. Wenn ich das richtig verstanden habe, sollte die Funktion bei "Read" und "Write" unterschiedliche Handler zurückgeben.

Mit den mitgelieferten Programmen läßt sich alles steuern, an der Hardware kann es nicht liegen.
Könnte vielleicht ein Erfahrener LVler mal einen Blick auf die VIs werfen? Die DLL, Header, Lib und VI`s im Anhang!
Dankeschön!

[attachment=15308]
Nachtrag:
Es geht jetztSmile
Nach ein wenig Googlen habe ich ein ähnliches Problem gefunden.
Dort wurde beim Öffnen der Endpoint in der Form "MCHP_EP1" übergeben und nich wie in der Header- Datei "\MCHP_EP1".
Also ein Fehler in der Header-Datei:angry:Man kann sich wirklich auf nichts mehr verlassen.
' schrieb:Nachtrag:
Es geht jetztSmile
Nach ein wenig Googlen habe ich ein ähnliches Problem gefunden.
Dort wurde beim Öffnen der Endpoint in der Form "MCHP_EP1" übergeben und nich wie in der Header- Datei "\MCHP_EP1".
Also ein Fehler in der Header-Datei:angry:Man kann sich wirklich auf nichts mehr verlassen.

Das ist kein Fehler in der Header Datei. Eine Header Datei ist prinzipiel immer für C konzipiert. Aber um alle 256 ASCII Character in C source definieren zu können braucht man einen sogenannten Escapemechanismus. D.h. man reserviert einen Character um anzugeben, dass das was danach folgt ein spezieller Identifier ist um einen anderen Character zu definieren. Und dieser reservierte Escape-Character ist der Backslash.
D.h. wenn C in etwas das als String oder Character gesehen werden muss (eingeschlossen in " für Strings und ' für Characters) dann wird der speziell interpretiert. So ist 00 zum Beispiel der ASCII code NUL, oder r ein Carriage Return. Natürlich kann es vorkommen dass man gerne einen in einem String haben möchte und das geht indem man einen \ einfügt. Der erste Backslash ist der Escape Code und der Zweite was für ein spezieller Character (hier halt der Backslash selber) man hier haben möchte.

Rolf Kalbermatter
Danke Rolf,

super erklärt Top2 und ich habe wieder was dazugelernt. Es gibt also noch Hoffnung!

Gruß
Referenz-URLs