interrupciones con pic18f4550 y USB-CDC

hola que tal mi problema parece ser sencillo pero yo simplemente no logro hallar el problema, soy nuevo en esto del C para pics, entonces estoy usando el compilador C CCS y lo que he hecho es generar un CDC por medio del USB del PIC 18f4550 y asi crear un COM ( puerto serial ) esta parte me ha funcionado sin ningun problema, cuando conecto mi dispositivo este funciona correctamente, pero el problema es: mi programa debe ir adquiriendo datos por el usb, y por medio de de las interrupciones externas del pic, INT, INT1 INT2 (RB0, RB1, RB2) hacer cierto manejo con mis variables pero cuando agrego el codigo de las interrupciones al programa la computadora ya no reconoce el dispositivo, lo quito y de nuevo funciona sin problemas, mi codigo es este: si alguien tubiera una idea de que estoy haciendo mal se los agradeceria!!!!!!!!!!!

Código:
con interrupciones:                   ( no reconoce windows el dispositivo)

         #include <18F4550.h>
         #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL2,CPUDIV1,VREGEN
         #use delay(clock=48000000)
         #include <usb_cdc.h>
         #include <usb_desc_cdc.h>
         
                         int a = 0;
                          int b = 0;
                          int cont1 = 0;
                          char datausb;
         
         #int_EXT
         void  EXT_isr(void) 
         {
         // Codigo de interrupcion 0
         }
         
         #int_EXT1
         void  EXT1_isr(void) 
         {
          // Codigo de interrupcion 1         
         }
         
         #int_EXT2
         void  EXT2_isr(void) 
         {
         // Codigo de interrupcion 2         
         }
                        
         void main() {
            usb_cdc_init();
            usb_init();                      
            set_tris_B(0x0F);                        
            Output_B(0x00); 
     
                        ext_int_edge(0,L_TO_H);
                        ext_int_edge(1,L_TO_H);
                        ext_int_edge(2,L_TO_H);
         
            while (!usb_cdc_connected()) {}
            while (true)
            {
                        enable_interrupts(INT_EXT);
                        enable_interrupts(INT_EXT1);
                        enable_interrupts(INT_EXT2);
                        enable_interrupts(GLOBAL);
                        
               usb_task();
               if(usb_enumerated())         
               {
                  if (usb_cdc_kbhit())          
                  { 
                     datausb = usb_cdc_getc();
            
                    //       Codigo de Manejo de Variables      
                    
                  }
               }
            }
         }


sin interrupciones:                             (si reconoce windows el dispositivo)

         #include <18F4550.h>
         #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL2,CPUDIV1,VREGEN
         #use delay(clock=48000000)
         #include <usb_cdc.h>
         #include <usb_desc_cdc.h>
         
                          int a = 0;
                          int b = 0;
                          int cont1 = 0;
                          char datausb;

         void main() {
            usb_cdc_init();
            usb_init();                     
         
            set_tris_B(0x0F);                       
            Output_B(0x00); 
          
            while (!usb_cdc_connected()) {}
            while (true)
            {
                       
               usb_task();
               if(usb_enumerated())         
               {
                  if (usb_cdc_kbhit())          
                  { 
                      datausb = usb_cdc_getc();
                     
                      //     Codigo de programa      
                    
                  }
               }
            }
         }

gracias
 
Última edición:
Mariomarst, como lograste que te reconociera el pc tu micro?, he intentado bajarme muchos drivers y ninguno me funciona, no se si sea porque toca programar el pic configurandole algo en especial pero no he logrado ni pasar esa parte.
Saludos.
A la solucion a tu problema, aqui hay un post que tiene muchos ejemplos no se si lo has mirado.
https://www.forosdeelectronica.com/f24/control-dispositivos-traves-modulo-usb-pic18f2550-17458/
 
Atrás
Arriba