Autor Tema: Problema con codigo  (Leído 8917 veces)

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

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Problema con codigo
« Respuesta #15 en: 17 de Noviembre de 2008, 16:14:48 »
Checa si este tema te sirve

Saludos.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado cdistri

  • PIC10
  • *
  • Mensajes: 24
Re: Problema con codigo
« Respuesta #16 en: 17 de Noviembre de 2008, 17:08:30 »
Hola

Gracias navaismo por el link. De hecho he sacado de ese tema la idea.

Lo que necesito es que el keypad y el LCD esten conectados al mismo puerto. Los dos al puerto RB. Si se puede. Asi de esa manera tengo los puertos RD puertos y RC para salidas a relés.

A ver si me puedes hechar una mano.


Gracias

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Problema con codigo
« Respuesta #17 en: 17 de Noviembre de 2008, 17:36:52 »
Si se puede pero tienes que desactivar el LCD cuando uses el KEYPAD y viceversa, asi pues cuando quieras mostrar el dato:

1ro.- Desactivas el LCD, Activas el Keypad y metes la tecla, a estas alturas guardas la tecla en una variable
2do.- Desactivas el KEYPAD, activas el LCD y mandas el valor de la variable que contiene el valor de la tecla.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado cdistri

  • PIC10
  • *
  • Mensajes: 24
Re: Problema con codigo
« Respuesta #18 en: 17 de Noviembre de 2008, 17:38:28 »
Hola

A que te refieres con activar o desactivar. Como desactivo o activo el LCD y keypad.

Un saludo

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Problema con codigo
« Respuesta #19 en: 17 de Noviembre de 2008, 18:02:40 »
A que puedes usar el pin ENABLE o R/W del LCD, o bien esperar un tiempo antes de escribir en el lcd
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Problema con codigo
« Respuesta #20 en: 17 de Noviembre de 2008, 19:30:44 »
cdistri estuve revisando esto que deseas y por lo visto la libreria KEYPAD si genera problemas para controlar el LCD ya que esta barriendo todo el Puerto para saber que tecla se presiona, tienes dos opciones que se me ocurren:

Modificar este pobre intento:

Código: FreeBasic
  1. program Key_LCD
  2.  
  3. dim key1, dum as byte
  4. dim keyt as string[5]
  5.  
  6. sub procedure writelcd(dim byref key1 as byte)
  7.  delay_ms(1000)
  8.  lcd_config(portb,4,5,6,7,portb,0,1,2)
  9.  lcd_cmd(lcd_clear)
  10.  lcd_cmd(lcd_cursor_off)
  11.  ByteToStr(key1,keyt)
  12.  delay_ms(50)
  13.  lcd_out(1,1,"Tecla #: ")  'ver la tecla en el lcd
  14.  lcd_out_cp(keyt)
  15. end sub
  16.  
  17. sub procedure key()
  18. keypad_init(portb)
  19. end sub
  20. main:
  21. dum=0
  22.  leek:
  23.   key
  24.   while key1 = dum
  25.    key1=keypad_read
  26.   wend
  27.   delay_ms(50)
  28.   writelcd(key1)
  29.   dum=key1
  30. goto leek
  31. end.

Que finalmente no se que tan bueno andar iniciando el lcd a cada rato.

O bien hacer tu propia rutina para leer el keypad si no mal recuerdo al amigo RALF2 hizo eso para manejar  un LCD y un KEYPAD, a reserva de que me corrigan de quien es el codigo aqui lo pongo es facil migrarlo a MKB

Código: FreeBasic
  1. ....
  2. L1 CON %01110000
  3. L2 CON %10110000
  4. L3 CON %11010000
  5. L4 CON %11100000
  6. .....
  7.  
  8. '******************************
  9. TECLADO:
  10. FLAG=0
  11. TECLA=$FF
  12. PORTB = L1
  13. SELECT CASE PORTB & $0F
  14. CASE %1110
  15.         TECLA="*"
  16.         FLAG = 1
  17. CASE %1101
  18.         TECLA="0"
  19.         FLAG = 1
  20. CASE %1011
  21.         TECLA="#"
  22.         FLAG = 1
  23. END SELECT
  24.  
  25. PORTB = L2      'Lin 120
  26. SELECT CASE PORTB & $0F
  27. CASE %1110
  28.         TECLA="1"
  29.         FLAG = 1
  30. CASE %1101
  31.         TECLA="2"
  32.         FLAG = 1
  33. CASE %1011
  34.         TECLA="3"
  35.         FLAG = 1
  36. END SELECT
  37.  
  38. PORTB = L3
  39. SELECT CASE PORTB & $0F
  40. CASE %1110
  41.         TECLA="4"
  42.         FLAG = 1
  43. CASE %1101
  44.         TECLA="5"
  45.         FLAG = 1
  46. CASE %1011
  47.         TECLA="6"
  48.         FLAG = 1
  49. END SELECT
  50.  
  51. PORTB = L4
  52. SELECT CASE PORTB & $0F
  53. CASE %1110
  54.         TECLA="7"
  55.         FLAG = 1
  56. CASE %1101
  57.         TECLA="8"
  58.         FLAG = 1
  59. CASE %1011
  60.         TECLA="9"
  61.         FLAG = 1
  62. END SELECT
  63. PAUSE 50
  64. RETURN

Saludos
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."