MPUSBAPI.DLL (18Fxx5x)

Oceano
31 de Mayo del 2010
Hola!

Estoy intentando acceder a la librería MPUSBAPI.DLL (que sirve para poder acceder a los microcontroladores de la serie 18Fxx5x por USB) desde FreeBasic, pero no lo consigo. Sabe alguien cómo poder acceder a ella a través de FreeBasic?

Las funciones más importantes son estas:


* MPUSBOpen
* MPUSBRead
* MPUSBWrite
* MPUSBClose
* MPUSBGetDeviceCount

Os pongo lo que llevo hecho de momento sin resultado satisfactorio:

Código:
Cls

Const MPUS_FAIL = 0
Const MPUSB_SUCCESS = 1
Const MP_WRITE = 0
Const MP_READ = 1
Const MAX_NUM_MPUSB_DEV = 127

Const Vid_Pid = "VID_04D8&PID_000A"
Const Outpipe = "MCHP_EP3"
Const Inppipe = "MCHP_EP3"

Dim As UInteger MyInpPipe
Dim As UInteger MyOutPipe

Dim As Integer Count

Dim As Any Ptr hLib

hLib = DylibLoad( "mpusbapi.dll" )
If hLib = 0 Then End

Dim Version As Function () As UInteger
Dim OpenUSB As Function ( ByVal As UInteger, ByVal As String, ByVal As String, ByVal As UInteger, ByVal As UInteger) As Integer
Dim ClosUSB As Function ( ByVal As String ) As Integer
Dim DevCont As Function ( ByVal As String ) As Integer

Version = DyLibSymbol( hLib, "_MPUSBGetDLLVersion" )
OpenUSB = DyLibSymbol( hLib, "_MPUSBOpen" )
ClosUSB = DyLibSymbol( hLib, "_MPUSBClose" )
DevCont = DyLibSymbol( hLib, "_MPUSBGetDeviceCount" )

Count = DevCont(Vid_Pid)

If (Count > 0) Then
MyOutPipe = OpenUSB( 0, Vid_Pid, Outpipe, MP_WRITE, 0 )
MyInpPipe = OpenUSB( 0, Vid_Pid, Inppipe, MP_READ, 0 )
Else
Print "Failed to open data pipes.!"
Sleep
End
EndIf

ClosUSB ( Outpipe )

Sleep

End

Oceano
03 de Junio del 2010
Problema resuelto aquí:

http://www.freebasic.net/forum/viewtopic.php?p=136296

Oceano Pacifico
13 de Junio del 2010
Un ejemplo práctico de manejo de la librería MPUSB.DLL a través de FreeBasic, para controlar microcontroladores tipo 18F4550 (18Fxx5x):

http://www.freebasic.net/forum/viewtopic.php?p=136968