Hallo, ich habe ein 2zeiliges lc display. 8 bit datenbus. Ich kann das Display initialisieren. Den Cursor anzeigen und positionieren. Wenn ich ein Zeichen schreibe geht der Cursor automatisch eine Position weiter was ja normal ist. Aber es wird nichts angezeigt. Da ich gern selbst porbiere hab ich alle Befehle einzeln geschrieben. Die Zeichenausgabe mache ich so: PORTD = 0b00000000; PORTC |=(1<<PC0); PORTD = 0x48; PORTC |=(1<<PC2); _delay_us(50); PORTC &= ~(1<<PC2); /* h schreiben */ PORTC &= ~(1<<PC0); _delay_ms(2000); Wobei PC0 das RS Signal ist und PC2 das enable. Hardwaremässig scheint es zu passen. Hab auch nachgemessen. Es ist ein ATmega 8 mit 16MHZ Kristall Könnt ihr mir weiterhelfen? mfg Poldi
Eigentlich muesste man das Vorgehen mit dem Datenblatt vegleichen...wir koennen nur raten
Poldi schrieb: > Aber es wird nichts angezeigt. Der Kontrast ist richtig eingestellt? > Wobei PC0 das RS Signal ist und PC2 das enable. Vorschlag: mach dir dafür ein paar #define Das ist kein großer Aufwand und es liest sich besser. Ist auch weniger fehleranfällig, wenn du die Manipulation von µC Pins in Begriffen der Anwendung formulieren kannst und nicht in µC-Pinbezeichnungen
1 | #define LCD_RS PC0
|
2 | #define LCD_E PC2
|
3 | |
4 | ...
|
5 | |
6 | |
7 | PORTC |= (1 << LCD_RS); |
8 | PORTD = 'h'; |
9 | |
10 | // ich würde auch hier eventuell mal eine kleine Pause einlegen,
|
11 | // damit sich die Leitungen stabilisieren können.
|
12 | |
13 | PORTC |= (1 << LCD_E); |
14 | _delay_us(50); |
15 | PORTC &= ~( 1 << LCD_E ); |
16 | |
17 | PORTC &= ~( 1 << LCD_RS ); |
18 | |
19 | _delay_ms(2000); |
so sieht man im Code gleich viel besser, welche Einstellungen in welcher Reihenfolge vorgenommen werden.
Hallo, hab schon alle möglichen Pausen zwischen den Befehlen ausprobiert. Den Kontrast hab ich auch schon verstellt. Hat nix gebracht. Der Cursor wird angezeigt. Ich probiers mal mit dem define Befehl. Ist mir unerklärlich das ganze. Das Display ist das von Pollin bestnr. 120422. Ich werds mal morgen früh probieren. Muss dann arbeiten. Danke POldi
Guten Morgen, ich hatte den Cursor als Sichtbar eingeschaltet (D=1). Hab ihr Testweise ausgeschaltet und es geht. Warum auch immer. Die Zeichen die ich sende werden angezeigt. Gruss POldi
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.