... im Datenblatt des HD44780 ist eine korrekte Initialisierung beschrieben. Für den Kompatiblen müsstest Du mal im Datenblatt nachschauen, gerade beim Timing gibts da öfters Unterschiede. Arbeite einfach diese Schritte ab:
  • 1. 8 Bit Modus und warten (beim HD44780 ca. 20ms, brauchst den Mist nicht 3x senden, funktioniert)
  • 2. Funktion Set (Zeilenanzahl, Font)
  • 3. Display an
  • 4. Display löschen
  • 5. Entry Set Mode (Cursorverhalten)

Und baue ab dem Schritt 'Funktion Set' eine generelle Abfrage des Busy-Flags mit ein, daß erspart Dir beim Wechsel der AVR-Taktfrequenz (durch einen Typenwechsel z.B.) einige Unannehmlichkeiten mit dem Timing.