Hola, estimados, nuevamente me enfrento a un problema al que no le encuentro solucion.
Lo que necesito es conocer la tension de alimentacion del pic (digamos que lo tengo conectado a una bateria).
Lo primero que hice fue poner Vref+ a 3,6v=PORTA.3 y Vref- = VSS
Pense que podia saber si la tension bajaba de ese umbral, pero no funciono, el numero siempre se quedaba fijo en 255.
Luego pense en hacerlo un poco mejor y puse un divisor resistivo de VDD-VSS a pinb.2 ahi parecio funcionar bien, es decir el valor retornado tenia relacion con la tension que tenia, pero cuando bajo la tension de la fuente el nro leido permanece casi invariable y a veces por el contrario sube en lugar de bajar.
Lo hice primero en BASIC y despues lo pase a ASM con mismo resultado.
Input PORTB.2 'Pin a leer
Input PORTA.3 'Pin de Vref+
ADCON0 = %00100001
ADCON1 = %00010110
y en BASIC bastaria con valor= ADIN 8
en asm lo tengo asi:
Asm
Clrf ADRESH
Clrf ADRESL
Bsf ADCON0,GO_DONE
Nop
Nop
Btfsc ADCON0,GO_DONE ;Loop hasta que se termine la conversion
GoTo $-3
Movff ADRESH, CPU_RefBATT
EndAsm
Ya me quede sin ideas y el PCB ya no quiere mas lola de cortar pistas y unir cosas. En ISIS naturalmente funciono desde la primera vez. Incluso una cosa que me volvio loco fue el fuse PABEN que inutilizaba el uso del los nibbles bajos del portb como Entradas analogicas, solo me funciono con trisb=127
Saludos y gracias.