bien, creo que todo lo preeliminar esta fuera de dudas.
Ahora me han surgido dudas en el momento de la obtención y envió de datos, antes hacía esto:
#define LEDV PIN_A0
#define LEDR PIN_A1
#define LED_ON output_high
#define LED_OFF output_low
#define modo recibe[0]
#define param1 recibe[1]
#define param2 recibe[2]
#define resultado envia[0]
int8 recibe[3]; //declaramos variables
int8 envia[1];
void main(void) {
LED_OFF(LEDV); //encendemos led rojo
LED_ON(LEDR);
usb_init(); //inicializamos el USB
usb_task(); //habilita periferico usb e interrupciones
usb_wait_for_enumeration(); //esperamos hasta que el PicUSB sea configurado por el host
/*------------------------------------------------------------------------------------------*/
LED_OFF(LEDR); //en este nivel me daba cuenta que el micro fue configurado correctamente
LED_ON(LEDV); //encendemos led verde
/***************************************************************************/
while (TRUE){
if(usb_enumerated()){ //si el PicUSB está configurado
if (usb_kbhit(1)){ //si el endpoint de salida contiene datos del host
usb_get_packet(1, recibe, 3); //cojemos el paquete de tamaño 3bytes del EP1 y almacenamos en recibe, recibe es el nombre de mi buffer
if (modo == 0){ // Modo_Suma
resultado = param1 + param2; //hacemos la suma
usb_put_packet(1, envia, 1, USB_DTS_TOGGLE); //enviamos el paquete de tamaño 1byte del EP1 al PC
}
if (modo == 1){ //Modo_Led
if (param1 == 0) {LED_OFF(LEDV); LED_OFF(LEDR);} //apagamos los leds
if (param1 == 1) {LED_ON(LEDV); LED_OFF(LEDR);} //encendemos led verde
if (param1 == 2) {LED_OFF(LEDV); LED_ON(LEDR);} //encendemos led rojo
}
}
}
}
}
ahora haciendo tu proceso como debo gestionar los datos?, como recibo y como transmito??
un saludo