Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

05/06/2014 #1


Cómo leer estado de puerto de pic que es salida ?
Hola a todos, mi consulta es la siguiente el puerto B del pic16f818 lo tengo configurado como SALIDA, como puedo leer el puerto entero para ver los pines que están en 1 y los que estan en 0. Utilizo el programa CCS. Ejemplo: si el puerto B esta así 01011001 leer justamente eso porque quiero guardarlo en la EEPROM ese valor.
05/06/2014 #2

Avatar de aguevara

A ver no entiendo, como para que quieres hacer eso ?? si elpuerto B lo tienes configurado como salida y envias o "sacas" un dato como 01011001 pues ya sabes de que dato se trata, solo guardalo, procesalo o haz lo que quieras con el, ahora si es un dato que viene del exterior capturado por otro puerto y solo lo trasladas al puerto B, pues es igual de sencillo solo guardalo, procesalo etc. No entiendo tu requerimiento.
05/06/2014 #3

Avatar de ByAxel

Por defecto el CCS establece el TRIS de cada puerto cada vez que se accede a ellos. Así cuando se escribe algo al puerto lo establece como salida y si se lee el puerto lo establece como entrada.

Para evitar que establecezca entrada o salida a cada rato se puede usar #use fast_io(b) por ejemplo...

Ahora un puerto es un registro (porción de memoria) más y todo lo que se escriba se mantiene, de ese modo se puede recuperar todo lo escrito siempre y cuando se establezca #use fast_io()...

Pero igual que aguevara, no se entiene el motido XD... ya que si escribes es por que ya lo tienes en alguna variable o algo, así que solo bastaria con usar el valor puesta en dicha variable...

Saludos.
05/06/2014 #4


yo puse un ejemplo de 01011001, pero la realidad es asi, estan todos en 0 al principio tengo un puerto A la entrada analogica con 8 switches. Entonces uno preciona el switch 1 y pones el RB0 a 1 y los demas quedan en 0 en otro momento tocas el switch 3 y pones el RB2 a 1 y si tocas de nuevo el Switch 3 pasa a 0 el RB2. entonces lo que quiero es guardar todo el dato del estado del puerto B en una variable, me explico? Cada switch me pone en 1 o 0 cada pata del Puerto B, yo quiero guardar todo el estado de ese puerto en una variable.
06/06/2014 #5


la funcion: input_test(pin_xx); con esa funcion puedes leer el estado de la salida de cada pin deseado, luego ya con eso te las tendras que apañar, no conozco una para leer el puerto entero, solo esa para leer pin a pin.
Un saludo
06/06/2014 #6


Bien en el transcurso del dia voy a probarlo. y comunico. como nose como esta el puerto porque uno lo va habilitando en forma aleatoria segun el switch que uno toca por eso queria leer el estado del mismo

---------- Actualizado después de 18 minutos ----------

Bueno funciona! El metodo tuyo Limako funciona por ejemplo con un STANDARD_IO(B) lees el pin el estado sin variar lastima que no tenga una funcion cuando es asi el CCS, y el metodo de ByAxel con un FAST_IO(B) y luego el set_tris_B(0x00) osea todo salida, podes utilizar un INPUT_B() y lees todo el puerto. Muchas Gracias Muchachos.
07/06/2014 #7

Avatar de aguevara

Que bueno que te funciono pero... ¿Y por qué no mejor lees el puerto A y guardas el dato?
No andes con cosas de leer una salida que desde antes ya sabes que existe en un puerto de entrada.
Saludos.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.