TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: elgarbe en 25 de Mayo de 2012, 15:16:28
-
Hola, tengo unas dudas existenciales:
Si uso #use standard_io(B) no necesito usar el set_tris_b, verdad? cuando hago un input me configura como entradas y cuando hago un output me configura como salida. es asi?
Luego, yo estoy usando el nible mas alto para el control de un PaP y el nible más bajo para entradas.
La primer duda es si hago un output_b(0); que pasa con las entradas que las tengo a 1? hago un corto?
Si la respuesta es si, entonces, para sacara un dato en el nible alto siempre debería primero hacer un input del puerto y enmascarando bit formar los 8 bits de salida teniendo en cuanta los 4 bits msb míos más los 4 lsb que leí del puerto?
La duda es porque estoy haciendo unas funciones en CCS para mover un PaP en un sentido una cierta cantidad de pasos y lo mismo en el otro sentido, pero como uso solo 4 bits y no se en mis aplicaciones los otros 4 bits van a ser usados es como que siempre debería hacer un input antes que un output, verdad?
Saludos y gracias!
-
http://www.todopic.com.ar/foros/index.php?topic=5801.msg31289#msg31289
Lo más sencillo es usar fast_io
-
http://www.todopic.com.ar/foros/index.php?topic=5801.msg31289#msg31289
Lo más sencillo es usar fast_io
jeje, tengo el manual de CCS y vi esa descripción. El tema es que no me aclara nada...
En el libro de CCS y Proteus se aclara un poco más la cosa.
Si no entiendo mal al usar fast_io, si o si tengo que usar antes el set_tris_x.
Lo que tampoco me termina de cerrar es que pasa si hago un output_b(0) con parte del puerto configurado como entrada y alguna conectada a positivo...
-
Si leyendo no se te "aclara", podes simularlo en proteus.. Más sencillo que eso ni idea :?
-
http://www.todopic.com.ar/foros/index.php?topic=5801.msg31289#msg31289
Lo más sencillo es usar fast_io
jeje, tengo el manual de CCS y vi esa descripción. El tema es que no me aclara nada...
En el libro de CCS y Proteus se aclara un poco más la cosa.
Si no entiendo mal al usar fast_io, si o si tengo que usar antes el set_tris_x.
Lo que tampoco me termina de cerrar es que pasa si hago un output_b(0) con parte del puerto configurado como entrada y alguna conectada a positivo...
Primero: fast_io es una directiva del PRE-Procesador. Significa que no vas a poder usar antes una instrucción que es del compilador, como set_tris_x, ya que el PRE-Procesador se procesa antes que la compilación. Si ponés fast_io(que en tu caso es lo que necesitás), estás diciendole al CCS que te vas a hacer cargo vos de asegurar en todo momento la configuración IO del puerto o de todos los puertos(dependiendo si usás #use fast_io(X) o bien para todos los puertos #use fast_io(ALL).
Si escribís en un pin que está configurado como entrada la escritura es ignorada. Si lees un pin que está como salida, sin entrar en casos especiales, leerás el estado de dicho pin.
Entonces, podés tranquilamente escribir un puerto entero, y sólo los pines que están configurados como salida van a modificarse. Ahora, cuando lees un puerto, necesitarías aplicar una máscara para poder eliminar los bits provenientes de pines configurados como salida.
Saludos.
-
Muchas gracias a todos, entre lo que me comentaron más los diagramas del IO en los datasheets termine de comprender como es el tema.
Saludos!