Hallo zusammen,
ich versuche nun schon seit einiger Zeit ein 16x4 LC-Display mit dem genannten Controller zu initialisieren. Leider hatte ich noch keinen Erfolg und bin auf euer Forum gestoßen und hoffe, dass ihr mir vielleicht helfen könnt.
Ich habe die Initialisierungsschritte laut dem Datenblatt programmiert:
Die verschieden Bezeichner wurden im Vorfeld definiert... Nun frage ich mich, ob an dieser Art und Weise der Programmierung der Fehler zu suchen ist, oder die "Ablaufkette" an sich fehlerhaft ist.
Einige Assemblerbeispiele sind im Forum zu finden, bloß möchte das Projekt in C verwirklichen.
ich versuche nun schon seit einiger Zeit ein 16x4 LC-Display mit dem genannten Controller zu initialisieren. Leider hatte ich noch keinen Erfolg und bin auf euer Forum gestoßen und hoffe, dass ihr mir vielleicht helfen könnt.
Ich habe die Initialisierungsschritte laut dem Datenblatt programmiert:
Code:
void init_lcd(void)
{
LCD_DDR = 0xff;
LCD_PORT |= (1<<EN); //Enable-Eingang setzen
_delay_ms(80);
LCD_PORT |= (1<<DB5); //
_delay_us(1);
LCD_PORT &= ~(1<<DB5);
_delay_us(1);
LCD_PORT |= (1<<DB5);
LCD_PORT |= (1<<DB6) |(1<<DB7); //Einschalten von Display im 2 Zeilenmodus
_delay_us(150);
LCD_PORT &= ~((1<<DB5) | (1<<DB6) |(1<<DB7));
_delay_ms(1);
LCD_PORT |= (1<<DB6) | (1<<DB7);
_delay_us(150);
LCD_PORT &= ~((1<<DB6) |(1<<DB7));
_delay_ms(1);
LCD_PORT |= (1<<DB4);
_delay_ms(5);
LCD_PORT &= ~(1<<DB4);
LCD_PORT |=(1<<DB4) |(1<<DB5) |(1<<DB6);
_delay_ms(5);
}
Die verschieden Bezeichner wurden im Vorfeld definiert... Nun frage ich mich, ob an dieser Art und Weise der Programmierung der Fehler zu suchen ist, oder die "Ablaufkette" an sich fehlerhaft ist.
Einige Assemblerbeispiele sind im Forum zu finden, bloß möchte das Projekt in C verwirklichen.