Estoy programando un micro PIC16F873, utilizando el conversor ADC en 10 bits. El lenguaje es CCS C.
En mi diseño, tengo un voltaje a medir que varia entre 2.7 y 3.15 volts aproximadamente.
A fin de obtener la mayor precision posible, configure lo siguiente:
setup_adc_ports(AN0_VREF_VREF);
Con esto estoy intentando decir que A0 es la entrada del ADC, A3 es la referencia high y A2 es la referencia low.
En proteus (isis) intento simular una conversion (que emite el valor por rs232 a una terminal) poniendo un generador DC en A2 de 2.5 volts y uno en A3 de 3.5 volts.
Sin embargo, me tira siempre como valor leido un 0. Si pongo A2 a 0 volts ahi si empieza a leer valores, cuyo maximo (1024) solo lo obtengo si pongo A3 en 0,5 volts.
La consulta es: ¿Estoy haciendo bien las cosas? quiza sea el simulador que lo hace mal pero no estoy seguro. ¿Entendi bien la idea de que el voltaje que haya en A3 sera el maximo voltaje y representa 1024, y el de A2 el minimo y representa 0?
En mi diseño, tengo un voltaje a medir que varia entre 2.7 y 3.15 volts aproximadamente.
A fin de obtener la mayor precision posible, configure lo siguiente:
setup_adc_ports(AN0_VREF_VREF);
Con esto estoy intentando decir que A0 es la entrada del ADC, A3 es la referencia high y A2 es la referencia low.
En proteus (isis) intento simular una conversion (que emite el valor por rs232 a una terminal) poniendo un generador DC en A2 de 2.5 volts y uno en A3 de 3.5 volts.
Sin embargo, me tira siempre como valor leido un 0. Si pongo A2 a 0 volts ahi si empieza a leer valores, cuyo maximo (1024) solo lo obtengo si pongo A3 en 0,5 volts.
La consulta es: ¿Estoy haciendo bien las cosas? quiza sea el simulador que lo hace mal pero no estoy seguro. ¿Entendi bien la idea de que el voltaje que haya en A3 sera el maximo voltaje y representa 1024, y el de A2 el minimo y representa 0?