Hallo zusammen, seit meinem Studium ist schon eine Weile vergangen und ich versuche mich nun mal wieder an der Programmierung mit einem Atmega 8. Zu Beginn wollte ich ein einfaches LCD-Display programmieren, wo ich aber schon auf Probleme stoße. Ich verwende Programmer's Notepad und das meldet mir in der lcdsetup.h eine falsche Deklaration vor "x". Wenn ich die Variable als int verwende geht es. Nach Übertragung in den Atmega8 funktioniert das Ganze aber gar nicht. Es erscheint immer ein schwarzer Balken im Display. Aber nur einer, Textausgabe habe ich auch schon versucht, geht aber auch nicht. Irgendwas muss bei der Initialisierung also schief laufen. Könnt ihr mir helfen? Ich danke schonmal. Nils
#define LCD_PORT PORTC #define LCD_DDR DDRC #define LCD_RS PB4 #define LCD_EN PB5 Geht mit dem Code nicht. Muss alles an PORTC.
Hallo Nils, ein schwarzer Balken heißt häufig, dass die Kontrastspannung nicht richtig eingestellt ist. Nach meiner Erfahrung darf ein noch nicht initialisiertes Display nur einen sehr schwach erkennbaren Balken zeigen, also leicht-grau, nicht schwarz. Gruß, DetlevT
Reihenfolge!
1 | #include "lcdsetup.h" |
2 | #include <avr/io.h> |
3 | #include <util/delay.h> |
4 | #include <avr/iom8.h> |
5 | #include <inttypes.h> |
6 | #include <stdint.h> |
7 | |
8 | int main(void) |
9 | {
|
10 | // Initialisierung LCD-Display
|
11 | |
12 | int Zeile=1; |
13 | int Spalte=0; |
14 | lcd_init(); |
15 | |
16 | |
17 | lcd_clear(); |
18 | while(1) |
19 | ;
|
20 | return 0; |
21 | }
|
Du solltest schon damit anfangen, die übrigen Header zu inkludieren, ehe dann lcdsetup.h den uint8_t benötigt, der erst durch stdint.h dem Cmopiler bekannt gemacht wird.
Ich danke euch für die hilfreichen Hinweise. Ich habe nun alles auf einen Port verdrahtet. Und die Kontrastspannung überprüft. Und die Reihenfolge der Header geändert. Code habe ich angehängt. Nun bekomme ich aber eine Zeile Striche und eine leere Zeile. Ich verstehe nicht, warum. Habt ihr eine Ahnung?
Nils H. schrieb: > Ich danke euch für die hilfreichen Hinweise. Ich habe nun alles auf > einen Port verdrahtet. Was genau hast du wie verdrahtet? > Nun bekomme ich aber eine Zeile Striche und eine leere Zeile. > Ich verstehe nicht, warum. > Habt ihr eine Ahnung? Dein LCD wird nicht richtig initialisiert.
DB 4-7 sind an PD0-3 und RS an PD4 und E an PD5. Also wie in der Headerdatei angegeben. Was mache ich bei der Initialisierung falsch? Ich habe mich hierbei an dem Turial orientiert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.