Autor Tema: usar pin como entrada y salida  (Leído 3000 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado championx

  • PIC10
  • *
  • Mensajes: 22
usar pin como entrada y salida
« en: 30 de Marzo de 2006, 11:24:00 »
Buenas! como andan? les hago una pregunta, he visto en algunos circuitos en la red que usan algunos pines del pic como entrada y como salida, por ejemplo, como tengo conectado un lcd al puerto B de mi 16f628 tengo ocupado el pin de interrupcion RB0, pero necesitaria usar este pin tambien como entrada para generar algunas interrupciones. Alguien sabria explicarme como?

gracias.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: usar pin como entrada y salida
« Respuesta #1 en: 30 de Marzo de 2006, 12:48:00 »
Escrito originalmente por championx
Buenas! como andan? les hago una pregunta, he visto en algunos circuitos en la red que usan algunos pines del pic como entrada y como salida, por ejemplo, como tengo conectado un lcd al puerto B de mi 16f628 tengo ocupado el pin de interrupcion RB0, pero necesitaria usar este pin tambien como entrada para generar algunas interrupciones. Alguien sabria explicarme como?

gracias.


Habría que ver el caso.  Si por ejemplo usas un pin como entrada salida y en el LCD sería la señal de RW, no habría problemas mientras que no estes escribiendo nada en el display.   El tema sería que la señal que inyectas en el PIN no se pase para el display y haga alguna operación no válida.  De todas formas como los datos al display se latchean cuando ocurre el ENABLE no debieras tener mayor inconvenientes siempre y cuando la tensión de operación del display y del PIC sea la misma.


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: usar pin como entrada y salida
« Respuesta #2 en: 30 de Marzo de 2006, 13:38:00 »
Mientras tú tengas la terminal ENABLE de la LCD en estado 0, la LCD ignorará toda instrucción o palabra que se encuentre en sus terminales. Es por eso que se puede usar RB0 en otra conexión.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: usar pin como entrada y salida
« Respuesta #3 en: 30 de Marzo de 2006, 14:05:00 »
A eso se llama "programacion dinamica"...


Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado championx

  • PIC10
  • *
  • Mensajes: 22
RE: usar pin como entrada y salida
« Respuesta #4 en: 31 de Marzo de 2006, 02:00:00 »
gracias por las respuetas, lamentablemente esoty usando la libreria de CSS para un lcd de 16x2 y el pin RB0 esta conectado al ENABLE del LCD...

la cuestion es esta... tengo el Lcd conectado mostrando datos, pero debo poder usar una interrupcion externa. Estoy usando el pic 16f628.

Probe la libreria de lcd lcd_flex.c que anda dando vueltas por la red, donde uno puede especificar los pines a usar por el LCD... pero anda cuando quiere, cada tanto se llena de errores la pantalla... no es muy buena (o no la se usar correctamente)

bueno, si alguien tiene una sugerencia se lo agradeceria mucho.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: usar pin como entrada y salida
« Respuesta #5 en: 31 de Marzo de 2006, 10:53:00 »
Hola de nuevo

Cuando quieres enviar o recibir información de la LCD la terminal RB0 (es decir, Enable) está en modo Salida. Cuando quieres detectar una interrupción externa, RB0 se debe poner en modo Entrada.

Aquí el problema es que tú no sabes cuando va a llegar una interrupción externa. Si supieras más o menos cuando va a llegar, podrías organizar tus tiempos y hacer trabajar la LCD en un momento y luego poner a entrada la terminal RB0. Una vez detectada la int. externa puedes regresar RB0 a salida.

Talvez si alguien del foro te proporcionara una librería LCD que use el puerto A en vez del B (u originalmente el D), o si nos adjuntas el lcd_flex.c para que lo probemos.

No sé si el 628 trae opción para interrupciones por cambio en el puerto B (creo que de B4 a B7), ésta sería otra opción, pero la LCD también usa esos pines. Vacilando

Voy a buscar en el foro a ver si encuentro otra librería.

Edit: aquí está...

http://miarroba.com/foros/ver.php?foroid=46840&temaid=3690404&marcar=libreria

Otra de Pocher

http://miarroba.com/foros/ver.php?temaid=1339854&foroid=85505

Desconectado javisus

  • PIC10
  • *
  • Mensajes: 18
RE: usar pin como entrada y salida
« Respuesta #6 en: 31 de Marzo de 2006, 16:52:00 »
Buenas champion ,sólo una observación, sin repetir lo que ya se ha dicho,
Si el LCD lo tienes en el puerto B , supongo que lo habrás conectado al LCD mediante pull-ups como normalmente se hace.
La interrupción vendría a la baja.ok..,
la señal de enable es muy rápida y posiblemente tu interrupción sea mucho más lenta, bien...
, pero ,y al hilo de lo que se ha comentado, el peligro de encontrarte el puerto en alta y la interrupción en un momento dado es posible.
Tendrías un cruze y a la m.. el puerto, siempre hay que pensar en las posiciones
Standby y en las protecciones.
Esta configuración no te degará otra que poner una resistencia en pull-down
para proteger el puerto de este posible transitorio (detrás del contacto),
 
en fin , es sólo una observación