Problema con Vref e interrupcion externa pic 18f4550

Buenas noches, hago la siguiente consulta porque la verdad no entiendo que pasa, estoy programando un 18f4550, en el compilador CCS (pic c), y necesito hacer uso de 11 puerto análogos y de la interrupción externa del micro, esta parte me funciona bien, el problema viene cuando quiero hacer uso del pin de referencia de voltaje vref+ (3.3 voltios) para mejorar la resolución de mis medidas, esto lo hago con la siguiente línea de código setup_adc_ports(VSS_VREF ), pero siempre que coloco esta línea de código, el micro ya no reconoce la interrupción(nunca entra a ella), una vez elimino esta línea de código el micro hace las lecturas del puerto análogo e ingresa a la interrupción sin ningún problema. No se cual pueda ser el motivo de esto y la verdad me gustaría trabajar con esa referencia para mejorar mis medidas.


muchas gracias.
 
Este es el código que tengo implementado

Código:
int x=0;

#INT_EXT                       
Void IntRB0() 
{
output_toggle(pin_d0);
}


void main()
{

setup_adc(  ADC_CLOCK_INTERNAL  );
setup_adc_ports( AN0_TO_AN11);
setup_adc_ports( VSS_VREF);     // <-------- cuando elimino esta linea de codigo funciona bien,con
                                                     // esta linea de codigo, no entra a la interruppcion


 Enable_Interrupts(Int_Ext);  
 Ext_Int_Edge(L_TO_H);        
 Enable_Interrupts(GLOBAL);   

   do{
        
          set_adc_channel(0);
           x=read_adc();
           printf("canal0= %u \n\r",x,y,z); 

         set_adc_channel(1);
           x=read_adc();
           printf("canal1= %u \n\r",x,y,z); 

          set_adc_channel(2);
           x=read_adc();
           printf("canal2= %u \n\r",x,y,z); 

           set_adc_channel(3);
           x=read_adc();
           printf("canal3= %u \n\r",x,y,z); 

                            
       }while (TRUE); 

}
 
Última edición por un moderador:
Atrás
Arriba