Hola a todos.
Bueno siguiendo con el tema de mpusbapi.dll, veremos como utilizar las funciones usb_put_packet() y usb_get_packet(). Las cuales permiten enviar datos por el usb o recibir datos.
Bien una descripción breve de las mismas es la siguiente:
Bueno siguiendo con el tema de mpusbapi.dll, veremos como utilizar las funciones usb_put_packet() y usb_get_packet(). Las cuales permiten enviar datos por el usb o recibir datos.
Bien una descripción breve de las mismas es la siguiente:
Código:
usb_put_packet(endpoint,*ptr,len,toggle) // Función completa
Vamos a ver lo que está dentro del parentesis:
1 - endpoint: Buffer de entrada o de salida (son unidireccionales) // Ya lo explique post atrás.
2 - *prt : apunta a la dirección del dato a enviar (es una variable declarada por nosotros).
3 - len: es el tamaño del paquete en bytes. (hasta 64 max)
4 - toggle: En la parte de transmisión de datos USB, los paquetes de datos se encuentran en grupos de paquetes de datos, y dentro de estos, existen unos llamados DATA0, DATA1. hay un proceso llamado sincronización del data toggle. a grandes rasgos esto no es mas que un método de validación de paquetes, y lo que hace es enviar alternadamente a DATA0 y DATA1 en una secuencia seguido de su ACK respectivo. todo con el objetivo de mantener la sincronización transmisor <-> receptor. ver fig 1 y 2
Sumario de la función: Esta función manda un paquete de datos hacia el host, el tamaño de los paquetes de datos hay que definirlos en el programa.
por ejemplo:
#define USB_EP1_TX_SIZE 1 // Tamaño del buffer de salida.
#define USB_EP1_RX_SIZE 3 // Tamaño del buffer de entrada.