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