AVR Mega8 LCD Initialisierung wir wegoptimiert

Gast #1048419
Lesenswert?

Hallo,

mache gerade mein ersten Erfahrungen mit Microcontrollern.
Ich möchte gerne mit dem ATMega8 ein LCD ansteuern.
Die LCD-routine hab ich mir hier aus dem Tutorial geholt.

Jetzt zu meiner Frage.

Wenn ich in AVRStudio das Programm debuggen möchte überspringt der immer 
die markierten Zeilen.
1
void lcd_init(void)
2
{
3
   LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN);   // benötigte Pins auf Ausgang schalten
4

5
 
6
   _delay_ms(30);
7
   LCD_PORT &= 0xF0;      // LCD-Datenpins auf 0 setzen
8
   LCD_PORT |= 0x03;               // muss zum initialisieren 3mal    gesetzt werden (Datenblatt) 
9
   LCD_PORT &= ~(1<<LCD_RS);        // RS auf 0 (Befehl)
10
   lcd_enable();
11

12
   //VON HIER########################################
13

14
   _delay_ms(6);
15
   lcd_enable();
16

17
   _delay_ms(2);
18
   lcd_enable();
19
   _delay_ms(2);
20

21
   //BIS HIER#########################################
22

23
   // 4 Bit Modus aktivieren 
24
   LCD_PORT &= 0xF0;        // LCD-Datenpins auf 0 setzen
25
   LCD_PORT |= 0x02;        // 4 Bit Modus (Datenblatt)
26
   lcd_enable();
27
   _delay_ms(1);


Kann es sein, dass er die wegoptimiert?

Hab mal versucht das auf dem Atmel laufen zu lassen, jedoch war nur der 
obere Balken Schwarz und sonnst hat sich nichts getan.
Hab aus dem Forum, dass das bedeutet, dass die Initialisierung nicht 
klappt.


Ich werde nochmal ganz in Ruhe alles nachprüfen.
Wenn die Zeilen jedoch wegoptimiert werden kann ich wohl lange suchen.

Schonmal danke für eure Hilfe.

Ist echt ne sehr gute Seite.

Gruß
Benjamin
Gast #1048447
Lesenswert?

Hier ist der Code von Enable:
1
// erzeugt den Enable-Puls
2
void lcd_enable(void)
3
{
4
   // Bei Problemen ggf. Pause gemäß Datenblatt des LCD Controllers einfügen
5
   // http://www.mikrocontroller.net/topic/81974#685882
6
   LCD_PORT |= (1<<LCD_EN);
7
    _delay_us(1);                   // kurze Pause
8
   // Bei Problemen ggf. Pause gemäß Datenblatt des LCD Controllers verlängern
9
   // http://www.mikrocontroller.net/topic/80900
10
   LCD_PORT &= ~(1<<LCD_EN);
11
}

Im Anhang ist das gesammte Projekt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren