Grundsätzlich ist dein Programm falsch aufgebaut. Du schreibst alles in die Headerdatei. Normalerweise hat man aber 2 Dateien, einer h-und einer c-Datei (abgesehen von der C-Datei mit der main). In die Headerdatei schreibt man die defines,... und in die c-Datei die einzelnen Funktionen.
Was mir aufgefallen das du immer nur 2ms als Pausen hast. Hier findest du mehr http://www.mikrocontroller.net/artic...-Tutorial:_LCD
Etwas genaueres zum Thema Init findest du hier: http://www.mikrocontroller.net/artic...g_des_Displays
Das ist meine Init-Routine
Ich hoffe das ich dir helfen konnte.Code:void LCD_Init(void) { DDRC |= 0x0F; //PC0 - PC3 als Ausgang DDRB |= (1<<PB6) | (1<<PB7); //RS und EN als Ausgang _delay_ms(15); LCD_Ctrl (0x28); _delay_ms(5); LCD_Ctrl (0x28); _delay_ms(1); LCD_Ctrl (0x28); /* 0b00001DCB 0 1 D: Display aus ein C: Cursor aus ein B: Blinken aus ein 0x0F: Display ein, Cursor sichtbar, Blinken ein 0x0E: Display ein, Cursor sichtbar, Blinken aus 0x0C: Display ein, Cursor unsichtbar, Blinken aus */ _delay_ms(1); LCD_Ctrl (0x0C); _delay_ms(1); LCD_Ctrl (0x01); _delay_ms(1); LCD_Ctrl (0x02); _delay_ms(5); }
MfG Hannes







Zitieren
Lesezeichen