Mi Hitachi LCD funciona el 50% del tiempo. ¿Es un problema el problema del botón de reinicio antirrebote en el AVR? ¿Por qué está pasando esto? Aquí hay un video de lo que está sucediendo.
Esto no sucede si escribo solo en la primera línea de la pantalla LCD . Solo sucede si escribo en la segunda línea de la pantalla LCD. Parece un problema con la dirección de la memoria, pero restablecí la memoria con una visualización clara en cada inicio.
También intenté incrementar el tiempo de retraso (5 segundos antes del inicio). No funcionó.
Aquí mi INIT():
_delay_ms(15); //wait for VDD to rise
send_nibble(0,0b0010); //Set to 4 bit operation (note: 1 nibble operation)
_delay_ms(5);
send_nibble(0,0b0010); //Function set, 4 bit
send_nibble(0,0b1000);
_delay_ms(15);
send_nibble(0,0b0000); //Clear Display
send_nibble(0,0b0001);
_delay_ms(15);
send_nibble(0,0b0000); //Entry Mode, Increment cursor position, No display shift
send_nibble(0,0b0110);
_delay_ms(5);
send_nibble(0,0b0000); //Display ON, Cursor On, Cursor Blinking
send_nibble(0,0b1111);
Parece que está reiniciando su microcontrolador, pero la pantalla no se reinicia (cuando presiona el botón, la pantalla no se apaga/reinicia). Tenga en cuenta que sin un reinicio, está comenzando en el modo de 4 bits, para enviar comandos de 8 bits, debe volver a ese modo.
En este caso, lo primero que debe hacer su init es restablecer la pantalla a un estado conocido. Alternativamente, puede conectar la pantalla para que se reinicie con la misma señal que el reinicio del microcontrolador.
Para una inicialización adecuada, consulte la hoja de datos . Observe que el diagrama de inicialización en la hoja de datos comienza con "Encender". No estás comenzando allí, te estás saltando los primeros pasos. De acuerdo con la hoja de datos,
Si no se cumplen las condiciones de suministro de energía para operar correctamente el circuito de reinicio interno, se hace necesaria la inicialización mediante instrucciones.
Este es el diagrama de instrucción de inicialización de 4 bits.
Napster
Samuel