mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Curser Position


Autor: Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Ich habe ein paar fragen bezüglich des LCD Tutorials.
Also ich habe ein LCD Display von Reichelt ( EA DIP204-4 mit dem KS0073
Controller) an einem ATmega16 angeschlossen.
Ich habe die Software aus dem LCD Tutorial benutzt und sie funktioniert
auch wunderbar.

jetzt will ich mal ein wort in die zweite oder dritte oder vierte zeile
schreiben und niergenwo sonst hin. wie funktioniert das?
irgendwie kann ich ja eine curserposition angeben von der ab das, die
zeichen geschreiben werden sollen. aber wie?
ich vermute ich muß doch dazu das einen wert in das DDRAM schreiben
oder?

Dann noch meine zweite Frage:
um das display anzusteuern, brauch ich ja nicht immer das enable bit.
Dann reicht es doch einfach, wenn ich aus der lcd_command routine die
lcd_enable routine weglasse oder?

und an welcher stelle des tutorials kann ich den vier zeilen modus
einstellen?

vielen dank schonmal

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Datenblatt findet man ein paar nette Hinweise in Form einer Tabelle.
PDF-Reader und grundlegende Englisch-Kenntnisse sollten vorhanden sein
;)
Auf Seite 2 stehen in der Tabelle sämtliche Befehle, und auf Seite 3
stehen rechts neben dem Initialisierungsbeispiel die Adresse für die
jeweilige Zeile.

Enable wirst du deswegen brauchen, weil das die Takt-Leitung ist. Mit
einer fallenden Flanke auf dieser Leitung werden die anliegenden Daten
in den Display-Speicher übernommen.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.mikrocontroller.net/forum/read-1-190985...

vielleicht hilft dir das was. Weiss nicht, welchen Compiler du benutzt,
aber wenn du die lib-Datei mal durchschaust, kannst du damit vielleicht
was anfangen.

Autor: Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi ich benutze das AVR Studio.

die Adressierung habe ich schon gesehen.
1.Zeile $00..$13
2.Zeile $20..§33
3.Zeile $40..$53
4.Zeile $60..$73

leider funktioniert nur die erste und dritte zeile.
es wäre aber auch toll wenn die 2. und 4. Zeile funktionieren würde.

mit ldi    temp1,0b00001001   ; 4zeilen modus
           recall lcd_command

           ldi temp1, 'T'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 'e'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 's'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 't'     ;Zeichen anzeigen
           rcall lcd_data


sollte ich ja eigentlich den vier zeilen modus aufrufen können.
Fünktioniert aber nicht. Nachdem ich diesen Befehl ausgeführt habe, ist
das display leer.

Autor: Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner eine Idee?

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

die Init weicht auch vom HD44780 ab.

writecmd(0x34);
writecmd(0x09);
writecmd(0x30);
writecmd(0x0F);
writecmd(0x01);
writecmd(0x06);

beachte bitte das die einzelnen Routinen eine gewisse Ablaufzeit
benoetigen o. du musst das busyflag abfragen.

Autor: Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das ist aus dem tutorial:

lcd_init:
           ldi  temp3,50
powerupwait:
           rcall  delay5ms
           dec  temp3
           brne powerupwait
           ldi temp1, 0b00000010        ;muss 3mal hintereinander
gesendet
           out PORTD, temp1             ;werden zur Initialisierung
           rcall lcd_enable             ;1
           rcall delay5ms
           rcall lcd_enable             ;2
           rcall delay5ms
           rcall lcd_enable             ;und 3!
           rcall delay5ms
       ldi temp1,0b00000010        ;4bit-Modus einstellen
       out PORTD, temp1
           rcall lcd_enable
           rcall delay5ms
           ldi temp1, 0b00101000        ;noch was einstellen...
           rcall lcd_command
           ldi temp1, 0b00001100        ;...nochwas...
           rcall lcd_command
           ldi temp1, 0b00000100        ;endlich fertig
           rcall lcd_command
           ret

was wird hier zu´m beispiele eigentlich eingestell,wo steht:
;noch was einstellen...
;...nochwas...
;endlich fertig   ?
und
ldi temp1, 0b00000010    ;muss 3mal hintereinander gesendet werden
was wird da eingestell?

um mein Display für den 4 line modus einzustellen
müsste ich laut datenblatt

ldi temp1,0b00001001
rcall lcd_command   senden.

aber egal anwelcher stelle und mit welcher pause ich das mache bleibt
mein display dunkel und reagiert nicht mehr.


wenn ich das programm aus dem tutorial so lasse wie es ist funktioniert
es ja wunderbar aber halt nur mit der ersten und dritten zeile.

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.