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){}
}
Lesezeichen