Conexion PIC18F2550 HID USB con Matlab
Publicado por David Javier Muñoz Aldana (2 intervenciones) el 05/06/2011 19:04:08
Estoy tratando de hacer una aplicacion de conectar USB con MATLAB. Muchas de las ayudas vienen con BULK pero lo quiero hacer con HID del micro Pic18f2550
Usando los archivos mcHID.dll y mcHID.h generados del compilador HID Terminal de mikroe. El asunto es que al llamar 'calllib' este me arroja cero, lo cual, es no conectado. Lo que me da a suponer que la funcion no la estoy unsando correctamente.
El codigo que llevo desarrollado es:
loadlibrary mcHID mcHID.h alias libreria %Aparecera un error
[notfound,warnings]= loadlibrary ('mcHID','mcHID.h') % Con esto se averigua el error.
%Todo indica que notfound= 'GetVersionID' 'LoadHID'
%Esos archivos no se encuentran asi tal cual como se mensionan
libfunctionsview mcHID %Averiguamos las librerias pero esto no detalla mucho sobre el uso de las funciones en otra ventana aparte.
libfunctions('mcHID', '-full') %Averiguamos las funciones dentro de command windows con todos los argumentos
open mcHID.h %Para ser mas contreto abrimos este archivo y averiguamos todo
% Los archivos verdaderos se llaman `'GetVersionID (UINT)' 'LoadHID()'
% 'Connect (HWND pHostWin)' 'Disconnect (void)'
if libisloaded ('libreria')==1 % Verifica que la libreria del alias a sido cargada
disp('Cargada la libreria')
else
disp('Estamos mal')
end
vid_pid_norm_c='vid_04d2&pid_0001'; %Colocamos el VID y el PID correspondiente del pic 18f2550 pero en hexadecimal
out_pipe_c=('\\MCHP_EP1'); % Se usa '\\MCHP_EP1' con doble \\ para indicar que sirve para C++ o Delphi
% En caso de que no funcione pasar '\\MCHP_EP1' a '\\MCHP_EPz'
in_pipe_c=('\\MCHP_EP1');
vid_pid_norm = libpointer('voidPtr',[uint32(vid_pid_norm_c) 0]);
out_pipe = libpointer('voidPtr',[uint32(out_pipe_c) 0]);
in_pipe = libpointer('voidPtr',[uint32(in_pipe_c) 0]);
data_in = eye(1,64,'uint8');
data_out = eye(1,64,'uint8');
%calllib('mcHID','GetVersionID')
[conectado] = calllib('libreria','GetItemCount') %Ya tengo respuesta pero de conexion 'cero'
Lo que requiero es que detecte el micro en matlab con calllib u otro codigo. Seguire en mi busqueda y en caso de encontrar la solucion la subo ;)
Usando los archivos mcHID.dll y mcHID.h generados del compilador HID Terminal de mikroe. El asunto es que al llamar 'calllib' este me arroja cero, lo cual, es no conectado. Lo que me da a suponer que la funcion no la estoy unsando correctamente.
El codigo que llevo desarrollado es:
loadlibrary mcHID mcHID.h alias libreria %Aparecera un error
[notfound,warnings]= loadlibrary ('mcHID','mcHID.h') % Con esto se averigua el error.
%Todo indica que notfound= 'GetVersionID' 'LoadHID'
%Esos archivos no se encuentran asi tal cual como se mensionan
libfunctionsview mcHID %Averiguamos las librerias pero esto no detalla mucho sobre el uso de las funciones en otra ventana aparte.
libfunctions('mcHID', '-full') %Averiguamos las funciones dentro de command windows con todos los argumentos
open mcHID.h %Para ser mas contreto abrimos este archivo y averiguamos todo
% Los archivos verdaderos se llaman `'GetVersionID (UINT)' 'LoadHID()'
% 'Connect (HWND pHostWin)' 'Disconnect (void)'
if libisloaded ('libreria')==1 % Verifica que la libreria del alias a sido cargada
disp('Cargada la libreria')
else
disp('Estamos mal')
end
vid_pid_norm_c='vid_04d2&pid_0001'; %Colocamos el VID y el PID correspondiente del pic 18f2550 pero en hexadecimal
out_pipe_c=('\\MCHP_EP1'); % Se usa '\\MCHP_EP1' con doble \\ para indicar que sirve para C++ o Delphi
% En caso de que no funcione pasar '\\MCHP_EP1' a '\\MCHP_EPz'
in_pipe_c=('\\MCHP_EP1');
vid_pid_norm = libpointer('voidPtr',[uint32(vid_pid_norm_c) 0]);
out_pipe = libpointer('voidPtr',[uint32(out_pipe_c) 0]);
in_pipe = libpointer('voidPtr',[uint32(in_pipe_c) 0]);
data_in = eye(1,64,'uint8');
data_out = eye(1,64,'uint8');
%calllib('mcHID','GetVersionID')
[conectado] = calllib('libreria','GetItemCount') %Ya tengo respuesta pero de conexion 'cero'
Lo que requiero es que detecte el micro en matlab con calllib u otro codigo. Seguire en mi busqueda y en caso de encontrar la solucion la subo ;)
Valora esta pregunta


0