Hallo,
die Leitungen sind ja doch relativ lang. Versuche mal, die Delays sehr lang zu machen, um zu schauen ob man so vielleicht doch weiter kommt. Vor allem die Dauer des Enable-Pulses darf größer werden.
Du kannst auch vor und nach dem Enable-Puls noch Pausen setzen:
Code:
static void lcd_enable( void )
{
_delay_us( LCD_ENABLE_US ); // kurze Pause <-- hier
LCD_PORT |= (1<<LCD_EN); // Enable auf 1 setzen
_delay_us( LCD_ENABLE_US ); // kurze Pause
LCD_PORT &= ~(1<<LCD_EN); // Enable auf 0 setzen
_delay_us( LCD_ENABLE_US ); // kurze Pause <-- hier
}
Für meine Displays habe ich da jeweils 700µs Pause drin, also relativ viel!
Und noch eine Frage: Hast du die Pins, die mit dem Display verbunden sind, auch wirklich als Ausgang geschaltet (nur um das als mögl. Ursache auszuschließen)?
Grüße, Bernhard
Lesezeichen