Hola a todos foreros! Le ven algún problema al código anterior?, paso a explicar:
El pic es un 16f876a, la configuración es la mínima, cristal, dos condensadores, dos tierras y dos conexiones a +5v, además, la conexión para tx y rx de la línea serial.
Uso los pines ra0, ra1, y ra2 como entradas analógicas, y la idea es muestrearlas y enviarlas por rs232 todo el tiempo.
Cual es el problema?, bueno, funciona, pero solo el canal 1(ra0), del canal 2(ra1) me llegan 2,5 voltios aproximadamente, cuando pongo esa pata a +5v, y del canal 3(ra2) me llega una tensión aún menor cuando pongo esa pata a cero, creo que unos 1,25 voltios (sospechosamente hay un patrón ahí).
Lo primero que pensé es, se cagó el módulo adc del pic, pero después dije, ese no es el problema, sino que el problema está en la multiplexación, tiempo quizás? bueno, lo modifiqué y le puse un retardo de 4 milisegundos (mucho) entre cada muestra, y hacía lo mismo, así que lo dejé como estaba.
Después probé hacer un bucle en el que solo tome muestras del canal 3 o RA2 y adivinen que, funcionaba bien, cuando lo ponía a cero, me llegaba un cero, y cuando lo ponia a +5v a esa pata (pata 4 del pic) me llegaba un 255, osea, +5v.
Olvidé mencionar que la tensión de referencia es 5v como podrán ver en la configuración.
Qué puede ser? el cristal que uso es de 4 Mhz.
Lo próximo que voy a probar es hacer la secuencia inversa para sacarme la duda de si es problema en la multiplexación, es decir, muestrear primero RA2, después RA1, y finalmente RA0, si el problema es ese, debería mostrarme bien los valores de RA2, pero no los de RA1, y RA0.
A alguien le pasó?
Desde ya muchas gracias...