Hola no recuerdo exactamente que hacen "aa" "bb" "dd", para mas informacion bajate este archivo, es de Gabriel Pool que trato este mismo tema hace tiempo.
http://dc360.4shared.com/download/6...riginal_307.rar?tsid=20110521-174553-d45d3713
En general lo que hace esta linea es llamar a una funcion contenida en la DLL mpusbapi de microchip
esta funcion es la MPUsbRead, y lo que hace es almacenar la data entrante en el vector data_in
es por eso que lo declaras de esta forma:
data_in = eye(1,32,'uint8');
el 32 corresponde con el numero de datos que se espera recibir, y tienes razon debe coincidir con lo que se envia del PIC.
[aa,bb,data_in,dd] = calllib('libreria', 'MPUSBRead',my_in_pipe, data_in, uint8(32), uint8(32), uint8(10)); %
Debes declarar la libreria y llamar a las funciones tal como en el ejemplo, en este momento no tengo a la mano matlab para recordar un poco ese ejemplo pero puedes insertar este codigo en tu programa para que te de informacion sobre las funciones contenidas en la dll:
%libfunctions('libreria', '-full') % Muestra en la línea de comandos las
% funciones de la librería
%libfunctionsview libreria % Muestra en un cuadro lo mismo que la
% instrucción anterior
esto tambien se explica en los programas de ejemplo de Gabriel Pool
Si te fijas el programa: clon_en_Matlab_del_programa_de_Rafique hace lo mismo en Matlab que el
USB_PIC_CCS_C en cC#, espero te sirva, saludos.
... parentesis de unit8 he visto que an algunas partes colocan 64..
Es uint8 y por eso el vector data_in tambien es del mismo tipo y quiere decir entero sin signo de 8 bits igual que lo que viene del PIC y del mismo tamaño en este caso 32.