Hola poi5on!!
En mi programa, la referencia esta asignada a AN3 no porque yo quiera, sino porque toco ya que si te fijas en la pagina 83 del datasheet de este pic, la unica forma para tener 2 pines analogos y los otros que mas pudiera como digitales es 0101 en PCFG<3:0>; sin contar los pines del cristal y el master clear (que a mi me gustan externos). Por esto me toco trabajar con la referencia en el pin 3... Pero lo tengo puesto con la alimentacion del PIC -> 5V -> Un lm7805...
Todo mi programa lo he desarrollado por modulos (intentando simular algo parecido a clases... cosas que se le quedan a uno de JAVA).
En fin, mi archivo se llama Conversion_AD.inc , he preferido adjuntarlo a pegarlo aqui completo ya que es un poco largo.
Podes fijarte en dos subrutinas en este archivo: la primera es CONFIG_CONVER_AD en la cual configuro algunas cosas necesarias y que no deben ser modificadas despues.
La segunda subrutina es DO_CONVER_AN0 la cual es la encargada de hacer la conversion en AN0. En esta se llaman a dos subrutinas de otros archivos <-> modulos que no son necesarios aqui, estas llamadas son ESPERAR_CONVER -> encargada de esperar la interrupcion debida a la conversion y la otra es ACONDICIONAR_DATO, que es la encargada de multiplicar, dividir y transformacion BCD... y todo lo necesario para presentar el el display de 7 segmentos.
La ultima llamada (que esta comentareada) es la que al activarla me esta creando el problema (;CALL DO_CONVER_AN1), el codigo de esta subrutina como puedes ver es casi identico... asi que no se que es lo que sucede.
Muchas gracias por todo y disculpame la explicacion tan larga...
Feliz dia
namontoy
Bueno, fue imposible adjuntar el archivo asi que lo voy a pegar (solo lo necesario)
==============================================
CONFIG_CONVER_AD
BSF STATUS, RP0
MOVLW b"10000101"
MOVWF ADCON1
BSF PIE1, ADIE
BCF STATUS, RP0
BCF PIR1, ADIF
BSF CONFIGURACION,CONF_AD
RETURN
;SUBRUTINA ENCARGADA DE LA CONVERSION EN EL PIN AN0
DO_CONVER_AN0
CLRF CONVER_TMR0
BCF CONTROL_CONVER_AD,CONVER_OK
MOVLW b"01000001"
MOVWF ADCON0
NOP
BSF ADCON0, GO
BSF CONTROL_CONVER_AD,AD_AN0
CALL ESPERAR_CONVER
;BCF ADCON0,ADON
MOVF ADRESH,W
MOVWF CONVERSION_AN0_HIGH
BSF STATUS, RP0
MOVF ADRESL,W
BCF STATUS, RP0
MOVWF CONVERSION_AN0_LOW
CALL ACONDICIONAR_DATO
;CALL DO_CONVER_AN1
RETURN
===================================================
Feliz dia
namontoy