Hola, hace tiempo habia posteado una consulta porque ISIS/PDS se cuelga cuando uso el ADC y utilizo algunos puertos AN para otra cosa.
Bueno, de todas formas lo hice en ASM, porque es mas sencillo todavia con el HARD integrado. Y estaba relativamente conforme con las mediciones de un acelerometro, pero variaban en 6 puntos mas o menos.... y crei que estaba bien, hasta que le plante un osciloscopio y las mediciones son completamente estables, a diferencia de lo que me dice el ADC del pic
Este es el cogdigo, en el datasheet dice que con +/-20ms alcanza para la precarga.
ADC99: '-----------------------------------------------------------------------------------
ADCON0=bADCreg 'Igual en circuito va como trompada directo sin bsf
DelayUS 60 'Mejor código minimo y delay asegurado
ASM
bsf STATUS,RP0 ;bank 1 ; bcf STATUS,RP1
clrf ADCON1 ;ADCON1=B'10000000' ;left justified, all inputs a/d
bsf ADCON1,7
bcf STATUS,RP0 ;bank 0
bsf ADCON0,2
btfsc ADCON0,GO ;Wait for conversion to complete
GoTo $-1
bsf STATUS,RP0
movlw B'00000111'
movwf ADCON1 ;clrf ADCON0
bcf STATUS,RP0
ENDASM
wADC.HighByte=ADRESH 'Se probo la asignacion via ASM pero no funciono
wADC.LowByte= ADRESL 'Utilice Righ justified en ADCON1, asi que Lowbyte Ok.
TRISA=%00111000 'Cuando no se usa ADIN se pueden alterar los reg. TRISA
PORTA=%00101101 'No se si hace falta, pero bueno... dale gas por las dudas
Return
PD: bADCreg=%11100001
Bueno, muchas gracias por las respuestas. He probado poniendole un capacitor y el ruido baja, pero segun el osciloscopio no necesita el capacitor
Una consulta para los usuarios del PDS, hay alguna forma de que al recibir ruido y almacenarlo en un array, al mostrarlo en un display no se tilde... esto es algo recurrente en todos los proyectos con GLCD, ya que al acceder a las fuentes, sino encuentra el ASCII buscado, se va a la luna, y ni siquiera es posible depurarlo, simplemente deja de funcionar y ni el WDT se da cuenta.