Programación Específica > Programación en C
Interferencia Entre Ports Ad
(1/1)
farmada:
Gente:
Estoy queriendo leer por ejemplo los ports ADC 0 y 1. COmo ejemplo pongo el canal 0 a masa directamente y el canal 1 a un pote. Cuando vario el pote hasta que me marca 127 aprox en el rango de 0-255 anda bien. pero cuando subo de estos valores el canal 0 que esta a masa en vez de seguir marcando 0 me entra a marcar valores que van desde 18 a 64. Es decir me influye un canal en el otro y no encuentro como solucionar el problema.
Si alguien se le ocurre algo por favor hagamelo saber.
Sera que uso lenguaje C ?
Les adjunto el programa.
setup_adc_ports(AN0_AN1_AN2_AN3_AN4_AN5);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
PosA = read_adc();
set_adc_channel(1);
PosB = read_adc();
Huguen_aus_Tirol:
Hola Farmada!
Me pasó algo parecido, es solo cuestión de darle tiempo al ADC a que "capture" la entrada analógica; es decir que, despues de la linea donde selecciones el canal AD pon una pausa de... bueno, no se que micro usas :D Pero prueba con unos 20 microsegundos en adelante.
Mejor aún, puedes convertir un canal e inmediatamente despues seleccionas el otro; haces alguna otra tarea y luego realizas la conversión AD (el tiempo es dinero ;) )
Saludos y nos cuentas!
farmada:
Gracias Huguen:
He probado y he podido leer bien las dos entradas analogicas. Disculpa por mi ignorancia pero no lo sabia.
Huguen_aus_Tirol:
Super!
Nedie tiene que disculparse por aprender, y nadie es ignorante :)
A mi tambien me ha pasado, asi como me pasan otras muchas cosas...
Saludos! :hola:
Navegación
Ir a la versión completa