hola a todos, los introduzco en mi problemilla.
Resulta que estoy usando el 18F2455 con el ejemplo que provee Microchip
USB Device - HID - Simple Custom Demo - C18 - PICDEM FSUSBAl principio estaba trabajando en el modo de comunicación por interrupciones, pero quice probar el modo polling porque estoy haciendo algo con las demas interrupciones, entonces para no afectar a estas es que he decidido hacer la comunicacion por polling.
El tema es que en la rutina de atencion a las interrupciones estoy poniendo unas salidas a led para ver cuando entra y me he encontrado que la interrupcion por el USB se sigue detectando, pero resulta que es aleatoria, es decir, no ocurre con una frecuencia preestablecida, sino que a veces tarda un segundo, otras menos y he contado hasta 20 segundos.
Esto no afecta para nada mi programa, porque lo que hago es ignorarla, pero me ha surgido la duda de donde viene esa interrupción, será algo normal del funcionamiento del USB, me refiero a que será algo como para que cada tanto el host tira la interrupcion y detecta si el dispositivo esta bien?
Como les decia, no afecta al funcionamiento, pero solo por curiosidad si alguien sabe porque pasa esto se los voy a agradecer.
Les pego partesita del codigo para graficar un poco lo que les digo.
#pragma interrupt YourHighPriorityISRCode
void YourHighPriorityISRCode()
{
// Check which interrupt flag caused the interrupt.
// Service the interrupt
// Clear the interrupt flag
// Etc.
mLED_2_Toggle();
if(INTCONbits.TMR0IF)
{
mLED_3_Toggle();
interrupt_flag = TRUE;
INTCONbits.TMR0IF = 0; // Clear interrupt flag
}
if(PIR2bits.USBIF)
{
mLED_4_Toggle();
#if defined(USB_INTERRUPT)
USBDeviceTasks();
#endif
PIR2bits.USBIF = 0;
}
} // This return will be a "retfie fast", since this is in a #pragma interrupt section
Ademas queria hacer un comentarios/sugerencia, existiría la posibilidad de que se hiciera un sub foro dentro de
Microcontroladores PIC que trate esclusivamente la
comunicación USB? Les dejo la inquietud a los Administraodres