Intentando entender la hoja de datos PIC para el PIC 12F683

0

Soy nuevo en hacer preguntas en este foro, así que perdóneme si se debe limpiar mi formato. Tengo una hoja de datos PIC 12F683. Estoy tratando de entender cómo, por ejemplo, ANSEL = 0 para configurar I / O a digital se obtiene de una hoja de datos.

He buscado en la web algunas pistas, pero todo lo que parece encontrar es "simplemente es". Eso no me está ayudando. Solo necesito un poco de ayuda para pasar el puente entre la información de la hoja de datos y el código real que manipula estos puertos. La página 39 de "Programación de PIC en Básico y la página 32 (4-2) de la hoja de datos no tiene sentido para mí ... No soy el primero en publicar este tipo de pregunta de lo que he encontrado, pero no lo hicieron proporcionar información específica. Espero que lo que he proporcionado sea suficiente para que una de ustedes vea cuál es mi pregunta y ayuda.

Puedo ver en la página 31 (4.1 de la hoja de datos) que el registro TRISIO determina la dirección y parece claro que la aplicación de un "1" a ese registro hará que el pin GPIO correspondiente ingrese una entrada, etc. Pero cuando se trata de ANSEL = 0, estoy perdido, parece que no puedo entenderlo. ¿Puede alguien tirarme un hueso por favor?

    
pregunta

1 respuesta

1

Tomando esta hoja de datos para el PIC12F683 (para asegurarnos de que estamos usando la misma versión de la hoja de datos): enlace

La Sección 4.0 "PUERTO GPIO" ofrece una descripción completa de cómo funciona el puerto IO. Deberías leer esto en el lado derecho de la página que dice:

"Nota: Los registros ANSEL y CMCON0 deben inicializarse para configurar un análogo Canal como entrada digital. Pines configurados como las entradas analógicas leerán ‘ 0 ".

Esto significa que si ANSEL y CMCON0 no están configurados, cualquier lectura en un pin IO que se duplique como entrada analógica siempre devolverá 0.

Más abajo en esa sección en 4.2, obtendrá una descripción detallada sobre el registro ANSEL y su máscara de bits en la página siguiente:

Bits 0 to 3
ANS<3:0>: Analog Select bits
Analog select between analog or digital function on pins AN<3:0>, respectively.
1 = Analog input. Pin is assigned as analog input(1).
0 = Digital I/O. Pin is assigned to port or special function.

Por lo tanto, escribir XXXX0000 en ANSEL hace que todos los pines sean IO digital. XXXX0001 haría AN0 analógico y los otros 3 digitales, y así sucesivamente.

La máscara de bits de

CMCOM0 se describe en la sección 8.7

<snip>
111 = CIN pins are configured as I/O, COUT pin is configured as I/O, Comparator output disabled, Comparator off.

Por lo tanto, debe escribir XXXXX111 en CMCON0 para deshabilitar el comparador y liberar los pines para IO digital.

    
respondido por el Unimportant

Lea otras preguntas en las etiquetas