TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: El_Coach en 05 de Junio de 2005, 10:35:00
-
Hola, tengo unas dudas que os pueden resultar obvias, pero que por mucho que leo no acabo de enterarme

¿Que hace la directiva #use fast_io(puerto) exactamente?, ¿es recomendable ponerla?
¿Utilizando #use fast_io(puerto) sigue siendo necesario utilizar set_tris_puerto(...) cada vez que se quiera cambiar la configuarcion del puerto?
¿Hay alguna manera de configurar pines como entrada o salida independientemente del resto del puerto?
En la ultima pregunta me refiero a por ejemplo si quiero configurar el pin B1 como salida y dejar los demas pines del puerto B con la configuracion que tenian.
¡Un saludo a tod@s!
-
Las directivas #use fast_io y #use standard_io definen cómo debe comportarse el compilador cuando se encuentre con la necesidad de leer o escribir en un puerto del PIC. De esta manera:
- fast_io: es el usuario quien debe preocuparse de establecer los TRIS adecuados antes de leer o escribir en un puerto
- standard_io: el compilador establece los TRIS adecuados cuando sea necesario para poder leer o escribir en un puerto
Claro que puedes cambiar sólo el TRIS de un pin. Cuando tú ejecutas el comando SET_TRIS_PUERTO(valor), estás indicando con los bits de valor el estado de cada pin. Ese valor debe ser de 8 bits y configurará como salidas los pines del puerto que estén a 0 y como entrada los que estén a 1.
-
Gracias Nocturno, ahora si que me ha quedado bien claro.
Con lo de configurar cada pin independientemente no me refería a lo que me explicaste... me refiero a por ejemplo, llamo a una función creada por mí que necesite poner el PIN_B2 como salida, pero dejar los demás pines del puerto B con la configuración que tenían. Puede ser que llame a esa función desde partes diferentes del main o desde otras funciones y que cada vez tenga los pines del puerto B con una configuración, entonces cuando regrese de esa función mantenga la configuración de los demás pines del puerto B que tenía antes de haberla llamado.
Si utilizo standard_io, que es como viene por defecto, utilizando los comandos input y output para asignar a los pines valores, configura tan solo el pin al que me refiero?
Gracias de nuevo
y disculpadme por estas preguntas tan rebuscás
-
Hola el_coach. Claro!! sin tocar nada (incluso sin poner la instruccion use standard i_o) con solamente usar Input_lo_que_sea o Output_lo_que_sea, los pines se configuran solos. Asi que si no necesitas nada raro, no te compliques con el tema.
-
Si pones al principio #use fast_io(puerto) cada vez que en el programa uses un input o un output el compilador no reprograma los puertos al desdoblar las instrucciones a ensamblador, con lo cual se eliminan líneas de programación asembler. Puedes comprobarlo en el fichero .lst
Un saludo
-
Muchas gracias a todos por vuestra ayuda 
Me quedó todo bastante claro 
Un saludo