Hallo

Recht hast du schon, das das Programm erstmal laufen sollte.

Wenn du meinen Rat befolgt hättest, wär es dir selber aufgefallen.

Code:
   //Das Schreiben von Daten auf dem Display funktioniert mit
   //den bereits oben angeführten Befehlen. RS muss auf H-Pegel sein, R/W auf Low.
   LCD_RS_PORT |= _BV(LCD_RS);
   LCD_RW_PORT |= _BV(LCD_RW);
Oben im Text schreibst du es noch richtig und dann.

Hoffe das wars.

Denn Fehler hast du ja bestimmt schon verbessert.

Code:
void toggle_e(void)
 {
  LCD_E_PORT |= _BV(LCD_E);
  asm volatile ("rjmp 1f\n 1:");  //warte 500ns 0,543 us
  LCD_E_PORT &= ~_BV(1 << LCD_E);
 }
MFG
Dieter