Hola muy buenas,
Estoy haciendo un proyecto con el PIC 18F4550, utilizando para ello la clase USB CDC.
Lo que pretendo básicamente es enviar bits desde Matlab, y sacarlos por las salidas digitales del PIC.
Lo que yo quiero es sacar 12 bits + un bit de signo, utilizando para ello el Puerto B (todos los pines), y el puerto D (utilizando los 5 primeros pines, 4 para el valor y el quinto para el signo).
La verdad, lo he conseguido y funciona muy bien, tengo control absoluto sobre ambos puertos si los trato con ejemplos sencillos. El problema es cuando intento enviar datos desde Matlab, mayores a 255.
Para leer lo que manda Matlab utilizo la función "u=usb_cdc_getc();" donde u es la variable donde guardo el dato recibido. Lo que me temo (aunque no lo se con seguridad, y gradezco si me lo aclaran), es que el problema no está en el gobierno de los propios puertos, sino que esta función tan solo puede leer 8 bits.
He probado con las siguientes alternativas:
gethex_usb(); //La cual funciona pero no me sirve, ya que creo que tiene la misma limitación que la otra y además no interpreta los números como yo quiero.
get_string_usb(char* s, unsigned int max); //La cual la he probado y no hace nada... tampoco tengo muy claro que parámetro es cada uno, así que a lo mejor la configure mal.
También he peinado Internet, y este foro y demás y no he sido capaz de dar con la tecla.
Muchas gracias por su ayuda!!
PD:Soy nuevo en el foro, ya he leido las reglas, espero estar haciendolo bien, sino, agradezco su paciencia y sus criticas constructivas. Creo que este tema esta en el lugar correcto en el foro, sino es así, avisenme. Gracias.