www.mikrocontroller.net

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


Autor: ... dartrax ... (Firma: www.dartrax.de) (dartrax)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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-...
und dieser:
.include "m8def.inc"
 
.def temp1 = r16
.def temp2 = r17
.def temp3 = r18
 
 
           ldi temp1, LOW(RAMEND)      ; LOW-Byte der obersten RAM-Adresse
           out SPL, temp1
           ldi temp1, HIGH(RAMEND)     ; HIGH-Byte der obersten RAM-Adresse
           out SPH, temp1
 
           rcall lcd_init              ; Display initialisieren
           rcall lcd_clear             ; Display löschen
 
           ldi ZL, LOW(text*2)         ; Adresse des Strings in den
           ldi ZH, HIGH(text*2)        ; Z-Pointer laden
 
           rcall lcd_flash_string      ; Unterprogramm gibt String aus der
                                       ; durch den Z-Pointer adressiert wird
loop:
           rjmp loop
 
text:
           .db "Test",0                ; Stringkonstante, durch eine 0
                                       ; abgeschlossen  
 
.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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.