Autor Tema: LCD y los retrasos necesarios  (Leído 2822 veces)

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

Desconectado Rodya

  • PIC10
  • *
  • Mensajes: 18
LCD y los retrasos necesarios
« en: 17 de Febrero de 2011, 01:19:40 »
Que tal,

Estoy trabajando con un PIC18F4520 a 4MHz para desplegar mensajes en un LCD a modo 4 bits con MikroC. Sin embargo, a veces tengo problemas para desplegar los caracteres, por lo que me han dicho que necesito de retrasos para darle tiempo al LCD para desplegarlos. Agregue algunos retrasos al programa, y funciona mejor, el problema es que la verdad no estoy seguro que tan largo deben ser, entonces los puse por todas partes... (ya se imaginan como se debe ver mi programa)

¿Alguien podría aconsejarme cuando son necesarios, y aproximadamente que tan largos deben de ser?

Aquí un "pequeño ejemplo del código" para que vean el desastre que es...

void main ()

Delay_ms(1000);
ADCON1 = 0x0F;
m = 1;         
b = 0;         
v = 0;         
contador = 60; 

Delay_ms(1000);
Lcd_Init();                   
Delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);         
Delay_ms(1000);
Lcd_Cmd(_LCD_CURSOR_OFF);     

Delay_ms(1000);                 
Lcd_Out(1,1,"Bienvenido");     
Delay_ms(1000);       


Y demás para cada vez que borro y escribo un mensaje... no se si alguien me podría dar un poco de orientación sobre cuando si los necesito y cuando no para que mi programa no se vea tan lleno de delays (he notado que a veces no pasa nada cuando quito delays, pero realmente tengo un temor "irracional" a que estos errores después reaparezcan aleatoriamente).


De antemano, gracias por cualquier consejo.

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: LCD y los retrasos necesarios
« Respuesta #1 en: 17 de Febrero de 2011, 11:35:28 »
Hola amigo, en lo que yo he trabajado con LCD utilizo retardos cortos, 300uS entre caracteres aproximadamente sólo en la función borrar y reiniciar el LCD utilizo 2 mS .
Para mayor claridad busque el datasheet del LCD y ahí aparecen los retardos sugeridos por el fabricante

pd. veo que está utilizando unos retardos demasiado largos,

Saludos.
« Última modificación: 17 de Febrero de 2011, 11:41:31 por Diego E. »

Desconectado Rodya

  • PIC10
  • *
  • Mensajes: 18
Re: LCD y los retrasos necesarios
« Respuesta #2 en: 18 de Febrero de 2011, 00:38:48 »
Que tal,

Muchas gracias por tu respuesta. Le pedí al vendedor que me proporcionará el datasheet del LCD, pero aparentemente solo tiene información para el funcionamiento en modo 8 bits. Aunque lo primero que pensaría es que el LCD no esta hecho para funcionar en modo 4 bits, aparte de un despliegue erroneo al principio (donde solo se ven todos los cuadros negros de la primera linea por un segundo) el LCD parece funcionar bien. Tiene un poco mas de información la datasheet, pero aparentemente tengo que bajar un plug-in de caracteres chinos para verlo, entonces no creo que será de mucha ayuda.

¿Entonces sí voy a utilizar un retraso cada vez que borre la pantalla y mande un nuevo mensaje, en tu experiencia? Eso es muy importante para mi, porque a veces remuevo retardos entre despliegues (por ejemplo despues de borrar el LCD, no pongo un retardo antes de desplegar el mensaje en la segunda linea despues de escribir algo en la primera) y no me genera problemas, aunque tal vez después podría generarlos (la verdad no sé).

Una vez mas, gracias por la información.

Desconectado cristian_elect

  • PIC18
  • ****
  • Mensajes: 453
Re: LCD y los retrasos necesarios
« Respuesta #3 en: 18 de Febrero de 2011, 02:31:29 »
En la funciones de lcd de MikroC ya estan incluidas los retardos necesarios para el funcionamiento del LCD.
Esos delay_ms(1000) no son necesarios.

Desconectado Rodya

  • PIC10
  • *
  • Mensajes: 18
Re: LCD y los retrasos necesarios
« Respuesta #4 en: 18 de Febrero de 2011, 14:21:03 »
Gracias, eso no lo sabía. Sin embargo, si no pongo un delay al inicio del programa me da problemas con el LCD, entonces solo necesito un delay al inicio del programa?

Esto me ayudará mucho a reducir mi programa, gracias!  :-/

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: LCD y los retrasos necesarios
« Respuesta #5 en: 18 de Febrero de 2011, 16:20:40 »
Citar
si no pongo un delay al inicio del programa me da problemas con el LCD

Lo que ocurre es que el LCD requiere un tiempo de inicialización y si en el programa se configura en la primeras líneas el PIC las ejecuta antes de que el LCD alcance su estado de funcionamiento, es por esto que se recomienda dar un par de mS antes de configurar el LCD

Saludos.

Desconectado Rodya

  • PIC10
  • *
  • Mensajes: 18
Re: LCD y los retrasos necesarios
« Respuesta #6 en: 18 de Febrero de 2011, 17:14:02 »
Muchas gracias por las respuestas Diego,

Ahora todo el mundo de los microcontroladores comienza a tener sentido  8)

Saludos


 

anything