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







Zitieren

Lesezeichen