TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: literatronic en 30 de Noviembre de 2009, 14:21:24
-
Estos nuevos PIC manejan dos registros nuevos para los ADC llamados ANSEL y ANSELH, y fuera de eso tienen reloj interno de hasta 8 MHz. Ahora, intenté migrar una aplicación que tenía en un 16F873A a un 16F883 y tengo problemas con una conversión de una señal análoga de temperatura que hacia por A0, parece que al trabajar con el reloj interno por defecto hay problemas.
¿Alguien sabe como configurar los ADC y el reloj interno de estos pic?
Gracias.
-
Estas trabajando en Basic? Para asegurarme nomas :mrgreen: Sube como estas realizando las configuraciones, haber si se detecta el inconveniente ;-)
Saludos!
-
Gracias Suky por responder, estas son (en PBP):
@ DEVICE pic16f883, MCLR_OFF
@ DEVICE pic16f883, INTRC_OSC_NOCLKOUT
ANSEL = %00000001 'Habilitamos la entrada análoga 0 del puerto A
ANSELH = 0 'Inicializamos a valores digitales el puerto B
ADCON1 = %10000000 'Configuramos las entradas análogas
Dejo el ADCON0 con la configuración por defecto.
-
Al dejar ADCON0 por defecto no estas habilitando el módulo, lo haces después? Además usas como clock Fosc/2, y debes fijarte si tienes un periodo adecuado, sino tendrás errores.
Saludos!
-
Eso es lo que quería saber Suky, cómo quedaba ADCON0 por defecto y cómo tendría que configurarlo para estos PIC ya que no sé cuál es la velocidad de su reloj interno y por ende por cuánto dividirlo, ¿me podrías ayudar con esto?
-
Sencillo, leyendo el datasheet sale fácil. El reloj interno es configurable entre varias frecuencias, hay que leer cual es la por defecto (Pagina 64). Después los valores iniciales que tienen los registros por lo general es 0x00, salvo algunos casos, pero igual esto se puede verificar en el datasheet. (Pagina 111)
Y para leer sobre el tiempo de clock del conversor pagina 102.
Saludos!
-
Muchas gracias Suki, solucionado.