TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: rferrero en 03 de Abril de 2004, 12:01:00
-
Hola a todos. Llevo un tiempo intentando que el convertidor A/D del 16f873 me muestre en unos leds (a modo de codificación) el valor de la tensión de salida de dicho convertidor, pero no hay manera. El dispositivo conectado es un gp2d12 (que da salida analógica), pero no consigo hacer que funcione de ninguna de las maneras.
Usando sentencias en C, se pone dato=read_adc(); y ya está?? Cómo se comprueba que termina de adquirir el dato?? No se pone nada?? No se testea el bit adif??
Socorro!!!!!!!!!!!!! cualquier ayuda será bien recibida y agradecida de antemano. Un saludo.
-
Hola,
Yo he trabajado últimamente con el ADC de un 16F876, qué es el hermano gemelo (si no recuerdo mal) del que estas usando tú. No he entendido bien lo que quieres llevar a cabo, pero te paso la rutina que uso yo cada vez que quiero convertir a digital la tensión que tengo en la patilla RA0 (según mi configuración).
ADC_ON
BCF ADCON0,7 ;CONFIGURA ADCON0
BSF ADCON0,6 ;CON OSCILADOR/8
BCF ADCON0,5 ;BIT 5,4,3 PARA CANAL ANALOGICO RA0
BCF ADCON0,4
BCF ADCON0,3
BSF ADCON0,0 ;CONVERSOR EN MARCHA
CALL RET_ADC ;RETARDO ADC NECESARIO
CONVERSION
BSF ADCON0,2 ;EMPIEZA CONVERSION
BUCLE
BTFSC ADCON0,2 ;BUCLE ESPERA HASTA CONVERSION
GOTO BUCLE
MOVFW ADRESH ;MIRA EL RESULTADO DE ADRESH
MOVWF TEMP_H ;LO PASAMOS A UN REGISTRO
BSF STATUS,RP0
MOVFW ADRESL ;MIRA EL RESULTADO DE ADRESL (BANCO 1)
BCF STATUS,RP0
MOVWF TEMP_L ;LO PASAMOS A UN REGISTRO
BCF ADCON0,0 ;PARAMOS EL CONVERSOR HASTA PROXIMA
RESULTADO
GOTO COMPARACIONES
Para que esto funcione, cuando al principio del programa configures los puertos y demás movidas en el Banco0, recuerda poner estas líneas:
MOVLW B"00001110" ;PARA EL ADC
MOVWF ADCON1 ;RA0 COMO ENTRADA ANALOGICA PARA CONVERSOR
MOVLW B"110001" ;TENSIONES DE REFERENCIA LAS DE VCC Y MASA DEL PIC
///La útlima línea configura el TRISA según lo necesité, pero es importante que configures como entrada (un 1) el bit0 del puerto A que es el usado en mi ejemplo como entrada analógica.
Espero que te sea de ayuda, a mi me funciona a la perfección.
Saludos
-

Muchas gracias!!