Hallo!

Ich werd verrückt.
Mein Display will einfach nicht.
Bitte kann mir wer helfen. Ich will das Display mit 4bit-Daten ansprechen.

Danke im Vorraus
mfg Christian

Code:
/*
Displayansteuerung
2x20 Display an ATmega8
Pinbelegung: PORTD = (x,E,RS,RW,D7,D6,D5,D4)
*/

#include <avr/io.h>
#include <stdlib.h>

#define LCD_RS 5
#define LCD_E 7

void warten(int t)          // Warteschleife
{
 int h;
 for (;t>0;t--)
 {
  for (h=1600;h>0;h--) {}
 }
 return;
}

void lcd_enable( int d )
{
  PORTD = d;
  PORTD |= 1<<LCD_E;
  PORTD &= ~(1<<LCD_E);  

}

void lcd_init( void )
{
  PORTD = 0x00;
  
  lcd_enable(0x03);        // 8 bit mode
  warten( 500 );			   

  lcd_enable(0x03);
  warten( 200 );			   

  lcd_enable(0x03);	       
  warten( 200 );			   

  lcd_enable(0x02);		   // 4 bit mode
  warten( 200 );

  lcd_enable(0x08);		   // 2zeilig, 5*8
  warten( 200 );
  
  lcd_enable(0x01);		   // clear Display
  warten( 200 );
  
  lcd_enable(0x0F);		   // Disp., Cursor, blink. ein
  warten( 200 ); 
}



void main(void)		   // Hauptprogramm
{   
  DDRD = 0xFF;          
  lcd_init();

}