Forum: Mikrocontroller und Digitale Elektronik LCD KS0070B mit atmega8 nach Tutorial: Initialisierungsprob.


von ... dartrax .. (Firma: www.dartrax.de) (dartrax)


Angehängte Dateien:

Lesenswert?

Hi,
bin gerade bei meinen ersten Gehversuchen mit dem Microcontroller und 
dem Tutorial. Die vorherigen Kapitel (LEDs u.s.w.) haben alle 
funktioniert, aber mein Display leider nicht.

1. Angeschlossen nach Beschaltung im Tutorial. Nach Rat im Forum 
(Forensuche) darauf gestoßen, die restlichen Ports an GND anzuschließen. 
Beides probiert.
2. Kontrastschaltung mit Poti. Nicht zu dunkel und nicht zu hell 
eingestellt. Bekomme 1 grauen Balken.
3. Externen Quarzoszillator mit 7,3728 MHz. Im Code: .equ XTAL = 7372800

Verwendeter Code:
ausschließlich aus dem Tutorial dieser (mit o. g. XTAL-anpassung):
http://www.mikrocontroller.net/wikifiles/9/96/Lcd-routines.asm
und dieser:
1
.include "m8def.inc"
2
 
3
.def temp1 = r16
4
.def temp2 = r17
5
.def temp3 = r18
6
 
7
 
8
           ldi temp1, LOW(RAMEND)      ; LOW-Byte der obersten RAM-Adresse
9
           out SPL, temp1
10
           ldi temp1, HIGH(RAMEND)     ; HIGH-Byte der obersten RAM-Adresse
11
           out SPH, temp1
12
 
13
           rcall lcd_init              ; Display initialisieren
14
           rcall lcd_clear             ; Display löschen
15
 
16
           ldi ZL, LOW(text*2)         ; Adresse des Strings in den
17
           ldi ZH, HIGH(text*2)        ; Z-Pointer laden
18
 
19
           rcall lcd_flash_string      ; Unterprogramm gibt String aus der
20
                                       ; durch den Z-Pointer adressiert wird
21
loop:
22
           rjmp loop
23
 
24
text:
25
           .db "Test",0                ; Stringkonstante, durch eine 0
26
                                       ; abgeschlossen  
27
 
28
.include "lcd-routines.asm"            ; LCD Funktionen

Das Datenblatt des LCDs ist im Anhang.

Ich habe öfters den Hinweis gelesen, die Wartezeiten zu verlängern, ich 
bin mir aber unschlüssig, bei welchen Befehlen ich das tun muss. Ich 
habe einerseits versucht, XTAL zu verdoppeln/halbieren oder 20 
zusätzliche rcall delay5ms-Aufrufe zwischen die Codezeilen einzufügen. 
Hat alles nichts gebracht, das Display zeigt weiterhin seinen grauen 
Balken an, es wird also noch nichtmal in den zweizeiligen Modus 
geschaltet.

Ihr werdet vielleicht die ein oder andere Stolperfalle kennen, die ich 
nicht kenne, bevor ich mich weiter mit dem Code und dem Datenblatt 
befasse.

vielen Dank,
dartrax

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
Noch kein Account? Hier anmelden.