Forum: Mikrocontroller und Digitale Elektronik Display: Unterschied zwischen character mode und graphic mode?


von myuser (Gast)


Lesenswert?

Hallo,

ich habe ein OLED-Display EA W162-X9LG:
http://cdn-reichelt.de/documents/datenblatt/A400/DS_OLED_EA.pdf

In dem Datenblatt gibt es eine Tabelle zum Befehlssatz. Dort steht, dass 
ich zwischen character mode und graphic mode wählen kann. Was ist der 
Unterschied zwischen diesen beiden Modi?

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

ohne jetzt speziell auf dein Display einzugehen.
Im Charachtermode, gibt das Display automatisch Zeichen aus einem 
internen Zeichensatz an von der Zeichengröße vorgegebenen Positionen 
aus. Das scheinen bei dir 2 Zeilen a 16 Zeichen zu sein (mal aus der 
Bezeichnung abgeleitet). Dem Controller gibst du dabei die Position vor 
(X und Y) und das Zeichen (z.B. 'A').
Im Grafikmode kannst/musst du jedes Pixel einzeln setzen somit kannst du 
dort alles darstellen was du willst. Auch da kannst du Text erzeugen 
musst den Zeichensatz dazu aber in deinem Controller vorhalten.

Sascha

von Jakob (Gast)


Lesenswert?

Ein Blick in das angegebene Datenblatt zeigt:
Richtiger Grafik-Mode IST NICHT.

Wie bei den üblichen 44780-LCD-Displays, gibt es hier 8
"Character", die man als 5x7-Pixel selbst definieren kann.

Das Sinus-Bildchen auf der 1. Seite oben-Mitte ist schon das
Maximum der "GRAFIK"-Fähigkeiten. mit 7 verschieden hohen
"Säulen".

Oha, da bleibt noch ein selbst zu definierender "Character"
übrig, da die Höhe NULL auch mit SPACE darstellbar ist! ;-)

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Jakob schrieb:
> Ein Blick in das angegebene Datenblatt zeigt:
> Richtiger Grafik-Mode IST NICHT.
>
> Wie bei den üblichen 44780-LCD-Displays, gibt es hier 8
> "Character", die man als 5x7-Pixel selbst definieren kann.
>
> Das Sinus-Bildchen auf der 1. Seite oben-Mitte ist schon das
> Maximum der "GRAFIK"-Fähigkeiten. mit 7 verschieden hohen
> "Säulen".
>
> Oha, da bleibt noch ein selbst zu definierender "Character"
> übrig, da die Höhe NULL auch mit SPACE darstellbar ist! ;-)

Hallo,
probier mal das zum Test:

Was siehst Du?

(Beim Attiny2313 den SPH -String ausremmen)

ciao
gustav

Neue Zeichen werden durch den Display Clear Befehl beim nächsten Start 
gelöscht und müssen neu erzeugt werden.

: Bearbeitet durch User
von Jakob (Gast)


Lesenswert?

@ Karl B. (gustav)

Hm, deinen ganzen Assembler-Code habe ich jetzt nicht durchgeackert.

Berichtige mich bitte, wenn ich danebenliege:

Wechselst du während der Ausgabe mal schnell die "User-Defined
Characters" aus, um damit auf mehr als 8 darstellbare "User-Defined-
Characters" zu kommen? - Hab ich noch nie probiert.

Klappt das?

Auf deinem Bild sind nur 8 "ungewöhnliche" Zeichen sichtbar.
Das geht ohne Trick. - Ist kein Beweis.

Wie kommt man damit dem angedeuteten Grafik-Mode näher???

von Jakob (Gast)


Lesenswert?

P.S.

Beim Sinus-Bildchen bleiben sogar ZWEI selbst definierbare
Zeichen übrig: Die maximale Säule gibt es schon bei Ausgabe
0xFF = 255.

von gustav (Gast)


Lesenswert?

Jakob schrieb:
> Wechselst du während der Ausgabe mal schnell die "User-Defined
> Characters" aus, um damit auf mehr als 8 darstellbare "User-Defined-
> Characters" zu kommen? - Hab ich noch nie probiert.

Das geht.
Aber nur mit den jeweils aufzurufenden Routinen.
Nochmals: Das CharakterROM hat unten noch freie Adressen (kommt davon, 
dass ASCII-Fernschreibcode erst bei höheren Zahlen anfängt.)
Mehr als 8 Zeichen geht nicht, weil die Adressierung dann in einen 
anderen Befehlsmodus wechselt:
Datenblatt:

DB7 DB6 DB5  DB4  DB3 DB2  DB1  DB0

L    H   X    X    X   X    X    X   Set CGRAM Adress

also Code: ldi temp, 0b01000000   (oder 0x40)
dann Kommando an Display
also RS-Bit auf Low und ein Enableimpuls
So, jetzt ist das Display im User-Defined Character mode und wartet auf 
weitere Eingaben.

Jetzt kommt's: Das ist im Datenlatt garnicht oder nur unzulänglich 
erklärt.

Jetzt gehe ich wieder mir RS auf high in den Datenübernahmemodus und 
gebe
meine Pixelwerte ein.
Im einfachsten Falle:
ldi temp, 0xFF
Daten-an-LCD-Routine (RS auf high, Enableimpuls)
..
..
..
achtmal dasselbe


Dieser Charakter gibt mir einen vollen schwarzen Balken aus und ist im 
Programm dann mit ldi temp, 0x00 in der Datenausgaberoutine aufrufbar.
Sonst kann ich ja Charakters direkt ausgeben z, B. ldi temp, 'A'
Jetzt muss man die Nummer direkt angeben, also 0x00, 0x01, bis 0x07

Vorsicht Falle:
Charakter 0x01 wird jetzt so programmiert: Set CGRAM = 0x40 plus 8
0x48 weil ich die Routine ja achtmal durchlaufe.
entsprechend für
0x02 = 50
0x03 = 58
0x04 = 60
0x05 = 68
0x06 = 70
0x07 = 78
mehr geht nicht, weil die 80 ja schon einen anderen Befehlsmodus 
aufrufen würde.

ciao
gustav

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

....
wichtig ist auch noch, dass richtig initialisiert wird. D.h.
die Init-Routine könnte (stark verkürzt) so aussehen:
30
30
30
20
28
08
01
06
10
0C
01

Dann sollte möglichst zur Sicherheit noch vor der Charakter-Ausgabe eine 
Positionierungsangabe erfolgen.

Die Pixelei:
siehe angehängtes Bildchen (uups. dupliziert)


ciao
gustav

: Bearbeitet durch User
von spess53 (Gast)


Lesenswert?

Hi

>Das geht.
>Aber nur mit den jeweils aufzurufenden Routinen.

Was hat das mit einem Grafik-Mode zu tun? Das sind ganz normale 
Funktionen des HD44780.

Leider schweigt sich EA über den Typ des Display-Controllers aus. Mit 
den Angaben aus dem Datenblatt kann man nicht viel anfangen.

@ gustav (Gast)

Deine Programme scheinen genauso ausufernd zu sein wie deine 
Ausführungen hier im Forum. Deine 'userdefchars.asm' kann man problemlos 
auf die Hälfte bis ein Drittel eindampfen.

MfG Spess

von Karl B. (gustav)


Lesenswert?

Jakob schrieb:
> Wechselst du während der Ausgabe mal schnell die "User-Defined
> Characters" aus, um damit auf mehr als 8 darstellbare "User-Defined-
> Characters" zu kommen? - Hab ich noch nie probiert.

Das sollte beantwortet werden.
Da ist noch ein Fehler drin. Ich gehe vom Proggi aus, wo die Adressen 
"automatisch" (im Z-Pointer) mit temp2 hochgezählt werden.
Für jede Zeile also eine extra Adressenangabe und eine 
Pixel-Daten-Eingabe.


Hatte schon gedacht, dass das Prog irgendwie noch verschlankt werden 
kann.
Vorher war es noch größer, da hatte ich pro Charakter noch eine extra 
Printschleife drin. (das Label Print_01 kann auch noch raus, sorry...)

Alles auf eine lpm- zurechtzustutzen geht deswegen nicht, weil ich 
einmal nullterminierte Tabelle für den "Normaltext" in Zeile 1 nehme, 
zum andern ja die Null darstellen muss, und dabei noch ein paar Befehle 
mehr brauche um die Schleife achtmal bei Adresseninkrement zu 
durchlaufen.

Wie sieht Dein Assemblerprogramm denn aus?

ciao
gustav

: Bearbeitet durch User
von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Gefällt's Ihro Gnaden @Spess jetzt besser?

(grins...das läuft sogar....)

ciao bello
gustav

von spess53 (Gast)


Lesenswert?

Hi

>(grins...das läuft sogar....)

Sicher? Beispiel:
1
Verzoegerung2:  
2
push temp
3
push temp1
4
push temp2
5
in temp, SREG
6
push temp
7
ldi zeit, 0xFF
8
ldi zeit1, 0x20
9
;
10
Verz_Schleife2:
11
dec  zeit
12
cpi  zeit,  1
13
brlt Verz_Schleife2
14
ldi  zeit, 0xFF
15
dec  zeit1
16
cpi  zeit1,  1
17
brlt Verz_Schleife2
18
pop temp
19
out SREG, temp
20
pop temp2
21
pop temp1
22
pop temp 
23
ret

Da 0xFF..0x80 kleiner als 1 (-1..-128) sind wird nur einmalig zeit bis 
0x7F (127) herunter, eigentlich hoch, gezählt und danach die Routine (da 
0x20>1)verlassen. Ist das so gewollt?

Das Sichern der temp-Register ist eh Unsinn, da sie nicht benutzt 
werden. Für SREG gilt ähnliches.
1
lpm          ; erstes Byte des Strings nach R0 lesen
2
...
3
mov  temp,  r0

Alle aktuellen AVRs beherrschen

lpm register (Register r0..r31)

Das waren nur zwei Beispiele. Es gibt noch mehr. Wäre für mich kein 
Grund zum Grinsen.

MfG Spess

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Und hier noch eine universelle Delayschleife nach Steve Wozniak:
1
.def  del  = r18  ; delay counter
2
; steve wozniak's wait routine - this time for AVR 
3
; this is the extended routine with del^3 
4
; this wait routine is ingenious and handles wide ranges of delay 
5
; as a hommage to steve i port it to all my embedded systems. 
6
wozwait: push  del
7
wwait2:  push  del
8
wwait1:  subi  del,1  
9
         brne  wwait1
10
         pop  del
11
         subi  del,1
12
         brne  wwait2
13
         pop  del
14
         subi  del,1
15
         brne  wozwait
16
         ret
Aufruf mit einen beliebigen Wert in 'del' (R18) - je grösser, desto 
länger das Delay. Ich klingel die benötigten Zeiten pro Taktfrequenz 
einmal mit dem Simulator aus.

: Bearbeitet durch User
von spess53 (Gast)


Lesenswert?

Hi

>Und hier noch eine universelle Delayschleife nach Steve Wozniak:
>...

Der grundlegende Fehler bei Karl B. (gustav) ist die Verwendung von 
signed Befehlen (brlt) auf unsigned Operanten.

MfG Spess

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

spess53 schrieb:
> Der grundlegende Fehler bei Karl B. (gustav) ist die Verwendung von
> signed Befehlen (brlt) auf unsigned Operanten.

Ich finde auch, das sie viel zu viele Register belegt und unnötig Krams 
sichert - ganz, wie du schon gesagt hattest. Die Woz Routine benötigt 
genau ein Register und den Stack und kommt problemlos von µs bis 
Sekunden.

von gustav (Gast)


Angehängte Dateien:

Lesenswert?

Freut mich, dass am eigentlichen Prog wohl zunächst nichts zu meckern 
übrigbleibt.

Nun zu den in die Pfanne gehauenen Warteschleifen:

Diese Schleifen sind noch aus dem "alten" Programm einfach gedankenlos 
von irgendeiner Internet-Seite (irgendein altes 
Mikrocontroller.net-Tutorial) abkopiert worden. Ich verwende sie nach 
Möglichkeit nicht mehr.
(Dienen ausschließlich dem Zweck, Euch hier zur Weißglut zu bringen.)
----
Das Sichern der temps ist dann eine liebgewonnene Angewohnheit.
Kann aber essenziell sein.
Zum Beispiel, wenn man Argumente mehrfach hintereinander sendet, wie bei 
der LCD-Initialisierung ganz zu Anfang ( 3x hex30 ) und zwischenzeitlich 
dieselben Register für Zeitschleifen verwendet.
Das hatten wir ja vorgestern angemeckert, das zuviele Male dasselbe 
geladen würde. Jetzt wäre es ohne push und pop
voll in die berühmte Hose gegangen. Gelle?

Wurde ja auch als "include"-Datei im Kommentar gekennzeichnet, die als 
Programmschnitzel für verschiedene andere Proggis verwendet werden 
könnte, von denen man nicht weiß, ob sie d i e Register noch für 
Arithmetics etc. brauchen.

Die "brlt"-Sache gefällt mir auch nicht.
Vielleicht geht es auch mit brlo oder Knopf an die Backe nähen und 
irgendwelche Flags abfragen, was es - auf Teufel komm raus - noch so zu 
bieten hat.
----
Es geht mit folgenden 16-Bit-Schleifen IMHO besser und übersichtlicher.
(Die Befehlsdurchläufe lassen sich wenn gewünscht, besser berechnen, 
ohne sich vielleicht in dem "Knäuel" zu verheddern.)

vielen Dank für Ihro Gnaden Aufmerksamkeit,
untertäniglichst

ciao
gustav

von Karl B. (gustav)


Lesenswert?

Was soll da falsch sein?
erstes Byte des Strings nach R0 lesen


 ist bloß ungenügend klar formuliert




Zitat: "http://www.avr-asm-tutorial.net/avr_de/testlpm.html";
lesen:   LPM ; Lese das Byte, auf das Zeiger Z zeigt in Register R0

Zufrieden?

von spess53 (Gast)


Lesenswert?

Hi

>Freut mich, dass am eigentlichen Prog wohl zunächst nichts zu meckern
>übrigbleibt.

Falsch. Ich habe nur keine Lust dein Progamm Zeile für Zeile auseinander 
zu nehmen und Romane dazu zu schreiben.

Z.B. Deine 72 Befehle zum Laden vom CG-RAM
1
ascii_00:        ; Charakters zuordnen
2
ldi  temp,  0x40    ; und Pixel definieren
3
rcall  kommando   
4
...
5
ascii_07:
6
ldi  temp,  0x78    ; "Set CGRAM address"-Steuerbefehl
7
...
8
ret

sehen bei mir so
1
                      ldi ZL,low(tabelle<<1)
2
                      ldi ZH,high(tabelle<<1)
3
                      ldi t17,8*8 
4
                      rcall set_cgram
5
                      ...
6
;-----------------------------------------------------------
7
;                     CG-Ram laden
8
9
;                     in  : Z - Tabelle
10
;                           r17 Anzahl Zeichen (á 8 Byte)
11
12
                      .if use_set_cgram == 1
13
set_cgram:              push r17
14
                        push r18
15
16
                        ldi r18,cgram_set
17
                        rcall lcd_wrcmd
18
19
set_cgram10:            lpm r18,Z+
20
                        rcall lcd_wrdat
21
22
                        dec r17
23
                        brne set_cgram10
24
25
                        pop r18
26
                        pop r17
27
                        ret
28
                      .endif

aus. Macht das gleiche, ist aber eine Idee kürzer.

>Die "brlt"-Sache gefällt mir auch nicht.
>Vielleicht geht es auch mit brlo

brlo ist genau so falsch, weil für signed Operanden. Sieh dir mal die 
Tabelle '3. Conditional Branch Summary' in

www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf

an.

Einfach so:
1
      ldi r16,10
2
aaa:  dec r16
3
      brne aaa

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

>Was soll da falsch sein?
>erstes Byte des Strings nach R0 lesen

Nicht falsch, aber überholt

lpm     - [Z] nach r0
lpm rd  - [Z] nach r0...r31

lpm stammt aus Zeiten der AT90Sxyz. Alle aktuellen kennen AVRs den 
lpm-Befehl der direkt in das Zielregister, ohne Umweg über r0, lädt.

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

Korrektur:

Alle aktuellen kennen AVRs den... -> Alle aktuellen AVRs kennen den...

MfG Spess

von Karl B. (gustav)


Lesenswert?

print_0:
lpm  temp, z+    ; erstes Byte des Strings nach temp lesen
inc  temp2       ; und Adresse Postincrement
cpi  temp2, 0x09    ; insgesamt achtmal Pixelwerte holen
breq  print_end0  ; wenn 9, dann zu print_end0
;mov  temp,  r0    ; Inhalt von R0 nach temp kopieren --- enfällt
rcall  ausgabe
;adiw  ZL:ZH,  1  ; Adresse des Z-Pointers um 1 erhoehen entfällt bei Z+
rjmp  print_0    ; zum Anfang springen, um naechstes
;        ; Byte zu holen
print_end0:
ret


Vorsicht Falle:
der Attiny 4313 machts, der 2313 glaube ich nicht.
da kommt im Studio4.18 die Assemblerfehlermeldung "no such instruction"

Das Z+ !!
danke für tip

: Bearbeitet durch User
von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

hier das Bild

von spess53 (Gast)


Lesenswert?

Hi

>Vorsicht Falle: der Attiny 4313 machts, der 2313 glaube ich nicht.
>da kommt im Studio4.18 die Assemblerfehlermeldung "no such instruction"

Nö. Aus Instruction Set Summary ATTiny2313:

LPM            Load Program Memory R0 ← (Z) None 3
LPM Rd, Z      Load Program Memory Rd ← (Z) None 3
LPM Rd, Z+     Load Program Memory and Post-Inc

Der uralte AT90S2313 (Include-Datei 2313def.inc) kennt nur 'lpm'. 
ATTinys kennen die erweiterten lpm-Befehle.

MfG Spess

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Ja, korrekt!

von Jakob (Gast)


Lesenswert?

Hm, ohne es genauer zu betrachten, erzeugt Karl B. (gustav)
da einige zusätzliche "user defined Characters" deren
Verwendbarkeit für eine Grafikausgabe z.B. mit einem Tiny-µC,
der mit seinen beschränkten Resourcen erst mal die Daten
erfassen, auswerten und bereitstellen muss, bisher nicht
nachgewiesen hat.

Hat schon mal wenig mit der Fragestellung des TO zu tun.
Aber vielleicht lernen wir anderen was:

Erzähl also nicht so viel, zeig es uns!
Datenerfassung, Auswertung und grafische Darstellung!

Vorgabe: Maximal 50% der Ressourcen eines Tiny44.
Punkteabzug, aber noch "interessant",
wenn es 50% eines Tiny84 sein müssen.

von spess53 (Gast)


Lesenswert?

Hi

>Hm, ohne es genauer zu betrachten, erzeugt Karl B. (gustav)
>da einige zusätzliche "user defined Characters" deren
>Verwendbarkeit für eine Grafikausgabe z.B. mit einem Tiny-µC,
>der mit seinen beschränkten Resourcen erst mal die Daten
>erfassen, auswerten und bereitstellen muss, bisher nicht
>nachgewiesen hat.

Wenn du den Typ des Displaycontrollers von EA nennst bekommst du mehr 
Infomationen.

MfG Spess

von gustav (Gast)


Lesenswert?

Jakob schrieb:
> Ein Blick in das angegebene Datenblatt zeigt:
> Richtiger Grafik-Mode IST NICHT.
>
> Wie bei den üblichen 44780-LCD-Displays, gibt es hier 8
> "Character", die man als 5x7-Pixel selbst definieren kann.

Also, wo steht im mit obigem Link aufrufbaren Datenblatt irgendetwas von 
Graphik-Mode.
Sollte so etwas sein, schicke ich eine Beschwerde an Reichelt wegen 
unlauteren Wettbewerbs bzw. bewusster Irreführung der Kunden.

Meine Displays von POLLIN funktionieren, wie sie es sollen.

Hier ein echtes Graphik-LCD:

LCD-Modul TG12864B-05
Grünes, grafisches LC-Display (128x64 Pixel) mit integriertem Controller 
(kompatibel zu KS0108) und LED-Hintergrundbeleuchtung. Geeignet zum 
Betrieb am PC-Druckerport (LPT).


Der Rest des Threads sollte doch die Userdef Chars behandeln
Grafik-Mode ist nicht.
Wenn man einen galoppierenden Gaul mit dem Hitachi-Controller hinkriegen 
will, kostet es schon viel Mühe. Den ersten Ansatz dafür habe ich hier 
geleistet. Mehr it nicht drin.


ciao
gustav

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Suchergebnis:
Da können 3 Fonts ausgewählt werden, sonst nichts an Extras.

von spess53 (Gast)


Lesenswert?

Hi

>Also, wo steht im mit obigem Link aufrufbaren Datenblatt irgendetwas von
>Graphik-Mode.

Auf S.4 unter Cursor/Display Shift/Mode/Pw r

>Sollte so etwas sein, schicke ich eine Beschwerde an Reichelt wegen
>unlauteren Wettbewerbs bzw. bewusster Irreführung der Kunden.

Was hat Reichelt damit zu tun? Das ist das Original Datenblatt von 
ELECTRONIC ASSEMBLY. Und das ist für OLED-Displays und nicht für 
LC-Displays.

Die OLED-Controller sind zwar weitestgehend kompatibel mit den HD44780, 
haben aber ein paar Befehle zusätzlich.

Ich habe hier noch ein dieser Displays herum liegen. Wenn ich Zeit habe 
werde ich die mal genauer testen.

MfG Spess

von Karl B. (gustav)


Lesenswert?

spess53 schrieb:
> Wenn du den Typ des Displaycontrollers von EA nennst bekommst du mehr
> Infomationen.

Das ist mal wieder typisch. In der Produktbeschreibung im Prospekt ist 
nichts, was beanstandenswert wäre.
Aber jeder, der sich ein wenig mit LCDs oder ähnlichen Displays nur 
annähernd etwas genauer befasst hat, wird doch bei der Angabe des 
Controllertyps sofort stutzig.
TECHNISCHE  DATEN
*  INTEGRIERTER KONTROLLER (HD44780-ÄHNLICH)

Dass man zwischen 3 "Fonts" auswählen kann, scheint das Besondere.
Wieso da Graphik-mode steht, müsste man mal den Hersteller fragen, was 
er sich dabei gedacht hat.
Reichelt kann da auch nichts dafür, bitte reuigst um Vergebung Ihro 
Gnaden.
Überall auch "subject to change - Änderungen vorbehalten etc."
(Will meine Kundennummer bei Reichelt auch nicht verlieren wegen 
unablässiger Querulanz.)

Testen kann ich's nicht, habe keine Oleds.

ciao
gustav

: Bearbeitet durch User
von spess53 (Gast)


Lesenswert?

Hi

>Aber jeder, der sich ein wenig mit LCDs oder ähnlichen Displays nur
>annähernd etwas genauer befasst hat, wird doch bei der Angabe des
>Controllertyps sofort stutzig.

Warum stutzig?

>TECHNISCHE  DATEN
>*  INTEGRIERTER KONTROLLER (HD44780-ÄHNLICH)

Ist auch nicht falsch. Ich habe das OLED-Display W162-XBLW einfach auf 
eine Platine aus der laufenden Fertigung gesteckt und es hat ohne 
Änderungen an der Software anstandslos funktioniert.

MfG Spess

von gustav (Gast)


Lesenswert?

spess53 schrieb:
> Warum stutzig?

Grafikmodus und HD447780
das macht doch stutzig.... so wäre es sinngemäß korrekter



Wenn ich nach LCD und Grafikmodus suche, bekomme ich andere 
Controller-Standards serviert.

von Karl B. (gustav)


Lesenswert?

Nur ein Suchergebnis purer Zufall:
Wo ist da was von HD44780 die Rede?

 LCD-Grafikdisplay

    Technologie
    mit Display-RAM

    Ausführung
    mit Controller UC1701

von Karl B. (gustav)


Lesenswert?

Warte noch auf Email-Antwort vom Hersteller des vom TO benutzten 
Displays insbesondere, wie der Begriff "Graphic Mode" hier nun zu 
verstehen ist.
Bis dahin... bitte etwas Geduld.

Abwarten und Tee trinken
ciao
gustav

von spess53 (Gast)


Lesenswert?

Hi

>Grafikmodus und HD447780
>das macht doch stutzig.... so wäre es sinngemäß korrekter

Nicht alles was du nicht kennst gibt es nicht. Such mal nach den ST7920 
von Sitronix. Und auch

Beitrag "HD44780 (Pollin DV20208) Zeichenbreite stimmt nicht"

MfG spess

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hallo,
hier Antwort des LCD-Herstellers (sinngemäß)
"...Es ist ein HD44780 kompatibler Controller. Er kann dasselbe wie der 
eben genannte.
Er kann zusätzlich aber noch OLED Spannungen generieren
und als Grafikcontroller arbeiten.
Der Controller könnte beim EA W162-X9LG auch vom "Schreib-" in den 
"Zeichenmodus" gesetzt werden, doch entstünde hierbei nach 8 Pixeln eine 
Lücke von 4 Pixeln Höhe, da auf dem OLED-Glas ein Zwischenraum zwischen 
erster und zweiter Zeile fest eingefügt ist, so dass nicht über die 
gesamte Fläche gezeichnet werden kann..."
Zitat Ende


Laut Datenblatt müsste IMHO dann in der Initialisierungsroutine anstelle 
0x17  0x1F erscheinen, um den "Graphic mode" zu aktivieren.



ciao
gustav

von spess53 (Gast)


Lesenswert?

Hi

>hier Antwort des LCD-Herstellers (sinngemäß)

Interessant wäre der Typ des Displaycontrollers.

Aber ich habe mal etwas gesucht und bin auf den WS0010 von WINSTAR 
gestoßen. Der stimmt soweit mit den Angaben von EA überein.

MfG Spess

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.