Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

07/02/2013 #1


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.
08/02/2013 #2


pon el codigo a ver si le vemos algo mal
08/02/2013 #3

Avatar de chclau

A mi me parece wue la idea no es poner solamente esos dos puertos sino agregarlos a la lista de puertos que ya estas leyendo
08/02/2013 #4


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); 

}
09/02/2013 #5

Avatar de chclau

Podes escribir algo asi?

setup_adc_ports(AN0_to_an11_vss_vref) ?
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.