Una cosita, encontré una errata en el driver cuando lo postee.
Al escribir un menseje en el foro cuando escribes una i entre [ ], automaticamente lo elimina y lo toma como indicación para escribir en cursiva.
No se si influirá en algo pero debeis revisar esta parte:
void lcd_iniciar( void )
{
int i;
int bytes_inicio[4] = { 0x28, 0x0C, 0x01, 0x06 };
output_low( lcd_rs ); //Pone a cero todos los pines de control
output_low( lcd_rw );
output_low( lcd_en );
delay_ms( 30 );
for ( i = 1 ; i <= 3 ; i++ )
{
lcd_enviar_nibble( 3 );
delay_ms( 5 );
}
lcd_enviar_nibble( 2 );
for( i = 0 ; i <= 3 ; i++ ) //Se configura el lcd con las características indicadas anteriormente
lcd_enviar_byte( 0 , bytes_inicio[ i ] ); //Aqui podria haber ERROR en el [ i ]
}
[/code]
Tan solo era eso, no veo que sea un motivo para que no funcione a 20mhz, pero que se sepa.
Un saludorrrrr