So, jetzt läuft alles. Vielen Dank Hubert.
Die Daten kommen Hardwaremäßig alle richtig am LCD an. Habe alle Initialisierungsbefehle nachgemessen! Es passt.

Bleibt nur noch das Problem bestehen, dass ich immer noch keinen blinkenden cursor nach der abgearbeiteten Initialisierung sehe

Vll hilft hier nochmal mein Code weiter.. Ist ja wirklich nicht viel.
Wär super wenn sich den wer anschaut

Code:
#include <avr/io.h>
#include <util/delay.h>

#define lcd_data  PORTC

void lcd_enable(void) {
	PORTD |= (1<<PD7); //bit setzen
    _delay_us(1); 
	PORTD &= ~(1<<PD7); //bit löschen
}


void lcd_init(void) {
	PORTD &= ~ (1<<PD5) | (1<<PD6) | (1<<PD7);//RS 0, RW 0, EN 0
	
	lcd_enable();
	_delay_ms(4);
	lcd_enable();
	_delay_ms(1);
	lcd_enable();
	_delay_ms(1);
	
	//lt. datenblatt bsp.
	lcd_data = 0x34;	//function set 8Bit, extension bit re = 1
	lcd_enable();
	_delay_us(39);
	
	lcd_data = 0x09;	//ext.0x09 function set 4zeilen modus
	lcd_enable();
	_delay_us(39);
	
	lcd_data = 0x0f;	//display on, cursor ein, cursor blinken
	lcd_enable();
	_delay_us(39);
	
	lcd_data = 0x01;	//clear display
	lcd_enable();
	_delay_us(1530);
	
	lcd_data = 0x06;	//entry mode set
	lcd_enable();
	_delay_us(39);
}

	
int main (void) {
	_delay_ms(20); //warten bis versorgungsspannung anliegt
	
	DDRC = 0xff; //LCD-data als Ausgang
	DDRD = 0xff; //Port D als Ausgang für RS EN RW
	
	lcd_init();
	lcd_init();
	lcd_init();
	while(1){}
	
}