mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD 128x64 Initialisieren


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe hier ein Display mit einem Ks0107/108 kompatiblem Chipsatz,
leider steht im Datenblatt nichts über die Initialisierungssequenz.

Ich habe bis jetzt nur mit Textlcds gearbeitet und bekomme bis jetzt
nichts auf den Schirm.

Bei einem Textdisplay sieht es ja ungefähr so aus:

an den Datenport: 30 Hex

enable

warten 11ms

an den datenport: 30 Hex

enable

warten

an den datenport: 30 Hex

enable

..... befehle clear display/reset cursor/

ab dann kann text eingegeben werden...

wie ist das nun bei einem Grafikdisplay,

habe hier schon einige einträge durchstöbert, aber leider nichts
gefunden.

Vielleicht kann mir eben jemend die abfolge wie in obiger form
angeben??? bitte um hilfe.

eine frage noch, gibt es eine art befehlssatz für das display, also wie
man eine art grafikmode aktiviert um z.B Byteweise schreiben zu
können????

Danke schonmal im voraus

Martin

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
steht eigentlich Alles im Datenblatt zum Chipsatz und Den kennst du ja.
Also nix wie ran an Google und suchen.

bye

Frank

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
...das ist richtig, aber mensch, das kann doch nicht sein....

habe nichts - einer initialisierung ähnlich scheinenden sequenz
gefunden, so weit war ich ja auch schon....

sehe ich den wald vor lauter bäumen nicht, oder...

martin

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

sitze gerad vor dem display, und bekomme einfach keinen
schreibzugriff.

habe die datenblätter des displays und der controller ks 0107 und ks
0108 bereits x mal durchgesehen, und verstehe nicht was da fehlt.

so wie ich das sehe benötigt man keine initialisierungssequenz, die
anweisungen stehen im datenblatt des ks 0108, also display on/off
zeilenzähler auf 0 usw...

was timings betrifft so scheint es keine maximal timings zu geben,
sprich: ich könnte das ganze auch mit ein paar eingabetasten und
codierschaltern dort rein tackern, ändert nichts!!

auch die V0 versorgungspannung, habe ich schon von 0-5v variiert, hätte
ja sein können das der kontrast auf 0 liegt - aber wieder
Fehlanzeige...

keine ahnung was es sonst noch sein könnte, ausser: es lebt nicht
mehr...

marin

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es gibt displays die brauchen negative kontrastspannung...mal im
datenblatt schaun

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich mach ja alles!!!

aufgefallen ist mir das auch schon, aber die angaben waren
diesbezüglich leicht irritierend....

im datenblatt des ks 0108 sind sie als differenz ausgewiesen, aber
meines erachtens nach sind nirgendwo konkrete angaben.

martin

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann schau ich mal...

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi
die kontrastspannung kommt vom display selbst. da sind 2 pins die über
ein poti verbunden werden müssen wenn ich mich recht erinnere.
guck mal bei reichelt oder conrad bei den displays das datenblatt an...
steht eigentlich alles drin

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das trifft für die meisten Dotmatrix displays zu. Da wird halt über
diesen poti die kontrastspannung 0-5V eingestellt. Und selber wird da
nix erzeugt...

Datenblatt: ich würde das so interpretieren das die kontrastspannung
von 5V bis -14V geht. leg mal -5V an, aber ich vermute du braucht min.
-10V.

Aber bei -5V solltest du wenigstens ansatzweise entwas erkennen können.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei reichelt steht zum bespiel das pin 18 die kontrast-spannung von
(-7)-(-9)V bereitstellt muß über den schleifer von nem poti an pin 3

pin18----poti---masse
           |
         pin3

http://www.reichelt.de/inhalt.html?SID=15XtVaRKwQA...

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man lernt auch nie aus...

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hate reicht in: -13V an Kontrast

du hattest recht in: das display erzeugt diese spannung selbst

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Infos,

werde das ganze in den nächsten tagen mal prüfen, ich hoffe nur mein
display hat die ganzen strpazen was verschiedene spannungen angeht, bis
dato überlebt, bei dem gendaken eine negative spannung anzulegen ist mir
nicht wirklich wohl...
aber gut...

zu dem datenblatt von conrad:
dieses display mag ja seine spannung selbst erzeugen, aber es ist nicht
dieses welches jenes das ich besitze. meines hat nur 16 pins, und KEINEN
Ausgang o.ä. für eine kontrastspannung.... leider, aber wenn ich
überhaupt erstmal was sehen würde, dann wäre ich ja schon froh.

martin

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe hier ein Display Name: MGLS 128x64 bestückt mit einem
Ks0107/108 kompatiblem Chipsatz, und bekommme einfach kein bild zu
sehen...

gibt es vielleicht eine initialisierungsequenz ähnlich eines
Textdisplays??

es sind 16 pins vorhanden

8 bit parallelbus
rs
rw
e
V0
Vplus
GND
CE1
CE2

als display versorgun VO habe ich bereits GND und plus 5V ausprobiert.
im datenblatt steht etwas mit 17V aber ich habe das so meine bedenken.


das display scheint seine spannung nichst selbst zu stellen!

ich versuche momentan mit eingabetasten pixel bytes zu schreiben.

im datanblatt des ks0108 stehen ja die befehle für:

display an
Zeilenauswahl
usw..

nichts zu machen

habe bereist ein zweites bestellt und ausprobiert, nichts!!!

welcher tipp fehlt...

martin

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich kenne ja nun dein spezielles Display nicht! Normalerweise ist
es aber so das du verschiedene Dinge initialisierst und dann das
Display sich seine eigenen 17V erzeugt. Sobald du das gemacht hast
wirst du die Pixel auf dem Display sehen koennen und zwar selbst dann
wenn sie nicht gesetzt sind. Jedenfalls wenn du den Kontrast nicht ganz
runter programmiert hast.
Ausserdem sollte die Stromaufnahme des LCDs leicht nach oben gehen
sobald du das interne Schaltnetzteil einschaltest.

Achte ausserdem darauf das du die Wartezeiten nach den Befehlen
einhaelst wenn sie im Datenblatt vorgeschrieben sind.

Olaf

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie schon gesagt, ich nutze eingabetasten. also wartezeiten können nicht
das problem sein, ausser es gibt maximalzeiten.

wie auch schon gesagt, das display scheint seine spannung NICHT selbst
zu stellen! VO ist der anschluss des Kontrastpotis oder ähnliches...

aus diesem grund gibts es wohl auch in den datenblättern des ks0108
KEINE Kontraststeuerung!!!!

es gibt bei LCDs ja Initialisierungssequenzen, gibt es die bei diesen
chips auch - im datenblatt sieht es nicht so aus!??

Martin

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das Display die Spannung wirklich nicht selber erzeugt dann
musst du sie halt selber anlegen. Das sollte aber doch eigentlich
im Datenblatt stehen.
Pass aber GENAU auf was die da als Bezugspegel angeben. Da habe ich
schon die merkwuerdigsten Dinge gesehen. Es koennte z.B sein das
die mit 17V meinen das du die gegen +5V als Bezugspegel anlegen
musst. Also dann -12V gegen Masse. Lese das mindestens dreimal!
Und da diese Spannung normalweise auch nur mit wenigen Microampere
belastet wird wuerde ich da auch einen Widerstand zur Sicherheit
zwischenschalten. Sonst gibt es naemlich nur einen Versuch. :-)

Die Initialisierungssequenz sollte eigentlich nicht im Datenblatt
des Controllers sonders des Displays stehen. Schliesslich weiss
der Hersteller des Controllers ja nicht was da letztlich fuer ein
LCD angeschlossen wird. Allerdings habe ich da bei meinem auch schon
ein paar ungezogene Worte fallen lassen weil im Datenblatt fast
nichts darueber stand.

Ich muss aber sagen das es mir stinken wuerde wenn ich da noch extra
so eine Spannung in meiner Schaltung erzeugen muesste. .-)

Olaf

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Olaf,

ich kann mir das auch nur so erklären, es muss an den angaben der
spannungen liegen, aber die sind verdammt scheiße!

ich habe hier 2 datenblätter, eines ist leider knapp 2 mb groß, kann
ich nicht einstellen, aber das andere schon, allerdings ist das noch
dürftiger.

bild gibts hier jetzt auch mal dazu...

das mit der spannung nervt, wenns wirklich so ist, dann mus ein dc dc
wandler her usw... scheiße

eines habe ich glaube ich mit 12v schon zerschossen....

martin

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
datenblatt, wenn man es so nennen kann...

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, als Datenblatt wuerde ich das mal nicht bezeichen.
Das ist wohl eher die grobe Uebersicht. Da gibt es garantiert
noch ein anderes mit mehr Seiten.

Trotzdem bin ich mir aber sicher das du bei diesem Display
die Displayspannung selber anlegen musst. Zum einen wegen
dem Pfeil in der Zeichnung, zum anderen weil man keine
Kondensatoren auf dem Display sieht.

Einen DCDC Wandler braucht man vielleicht garnicht. Du brauchst
nur einen sehr geringen Strom. Das muesste sich eigentlich mit
einem kleinen Spannungsvervielfacher (Villard-Schaltung) machen
lassen wenn du irgendwo auf deinem Board noch eine Frequenz
abzapfen kannst. (z.B Timerausgang)

Olaf

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi olaf,

das ist schonmal gut, das wir was die externe spannung angeht, einer
meinung sind.

das mit der villard schaltug und einem ne555 o.ä. wäre auch eine
lösung.....

wenn du mir mal deine mailadresse zukommen lässt, dann lass ich dir mal
das datenblatt zukommen, also die vollversion von der ich zuvor schon
sprach...sind ca. 1,7 mb.

vielleicht fällt dir ja noch was dazu ein....

martin

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hier mal das Große Datenblatt, vielleicht klappt der Upload ja doch..

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so viel zu "keine BMP- oder TIF-Dateien, max. 1 MB"

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...ich bin überascht, der upload ging gut.

hier scheint meines das ab seite 17 im dokument beschriebene zu sein,
ich hätte ansonsten auch gern den link über google bekannt gegeben,
aber leider hab ich dort nicht gefunden, deshalb der upload.

es hat nur 16 Pins, und so wies scheint keine eigene lcd
versorgungseinheit.

wie gesagt, eins habe ich warscheinlich bereits zerschossen, aber das
zweite liegt schon bereit. die LCD Hälfte leuchtet komplett, und lässt
sich nicht wieder ausschalten, auch nach abnehmen der betriebsspannung,
aber zumindest leuchtet wenigstens etwas, leider nur da ich
warscheinlich eine falsche spannung angelegt habe...

ansonsten ist auf dieses display nichts zu bekommen, aber wie gesagt
wenn ich nachher zu hause bin, werde ich an das neue display langsam
eine negative spannung an den V0 bezeichneten pin legen, und hoffen das
es nicht brennt, sondern endlich meine paar bytes anzeigt...

Martin

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ludwig

ist doch ein pdf!....

naja, meinst du, ein thread in dem einer seinen spectrum analyser von
oben/unten/nebenan/gegenüber/links und rechts zum 27igsten mal
fotografiert und einstellt, jedes mal mit 100Kbyte, ist besser - ich
weiß ja nicht!?

Martin

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so war das nicht gemeint.. war eher so gemeint: "das ding ich ja größer
als 1MB und geht trozdem...komisch". Srty falls das falsch rüber
gekommen is.

Und fang ned gleich bei -12V an das ist ein ABSOLUTE MAXIMUM RATING

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
..ja hat mich auch gewundert..., ich wollte  mir schon den pdf writer
organisieren und den interessanten Teil ausschneiden, nur leider keinen
da....verusch - und es ging...

ich hoffe nur das ich irgentwann mal was sehe, ansonsten verliere ich
langsam aber sicher den glauben, das das noch was wird.

habe pro display 14€ abgeltzt, wäre einfach ärgerlich. sollte
eigentlich ein mini oszi werden... für kleine spannungen usw...

aber wenn ich keinen schreibzugriff auf dieses verflixte display
bekommen, sind mir die hände gebunden...

Mittlerweilen habe ich hier noch ein OLED/PLED Display von LC Design
angeschafft  - 128x64, hat satte 50€ gekostet - bin froh mir die Hörner
erstmal noch an den billigen Dingern ab zu stoßen bevor es dann richtig
ernst wird...

Martin

Autor: Tenner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das datenblatt sagt für die ersten 3 displays:

   vdd - vss = +7V (max)
=>  7V - 0V  = +7V

weiter

   vdd -   v0   = +17 V (max)
=>  7V - (-10V) = +17V

=> kontrastspannung bei 7V betribsspannung max. -10V

bei +5V betriebsspannung
 5V - (-12V) = +17V
also maximal -12V kontrastspannung

für das 4. display:

   vdd - vss = +7V (max)
=>  7V - 0V  = +7V

weiter

   vdd -   v0   = 28 V (max)
=>  7V - (-21V) = +28V

die displays brauchen also eine negative kontrastspannung

gruß tenner

ps.: bei den oleds nochmal genau das datenblatt lesen

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
...mein Gott, zu erkennen ob es sich dabei um ein Minuszeichen oder ein
"bis" handelt, wenn man davon ausgeht das es mit 5V läuft, da das bis
jetzt alle Displays die ich kenne taten, und es dann zu wagen etwas
negatives an CMOS anzuschließen, ohne dabei mit der Wimper zu
zucken...

das ist kein Datenblatt, das ist eine Qual.!!!

bei meinem ersten display waren es 12V, pauschal erstmal, war dann auch
pauschal erstmal sehr Kontrastreich!-> mist

was die Oleds angeht, es scheint kein Acrobat Reader zu geben der
dieses Datenblatt einwandfrei öffnet ohne in Japan nach der passenden
Schriftart zu fragen, die dann 7,7 MB groß ist, und die man so und so
nicht lesen kann, dazu ist hier schon AcrobatReader 7.0 installiert...

Martin

Autor: Tenner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Datenblatt ist doch eindeutig. Würde das Minuszeichen "von bis"
bedeuten, dann wäre die Betriebsspannung ebenfalls in dieser form
angegeben. Dann müßte da

Vss - Vdd = 0V - 7V wobei das - als 'bis' zu interpretieren ist

stehen.

die Angabe

Vdd 'bis' Vss = 7V würde nun wirklich keiner begreifen. Soll es
heißen die betriebsspannung geht von 7V bis 0V? 'kratz kopf' also
negative betriebsspannung 'kratz kopf'

abgesehen davon schau dir mal das Timing zu V0 an. Das Diagram zeigt,
dass ein 50 ms nach anlegen der Betriebsspannung V0 aufgeschaltet wird.
Es ist dort für V0 eine negative Flanke dargestell die von 0V runter auf
V0 geht. => Negative Kontrastspannung.

Gruß Tenner

ps.: das OLED Datenblatt kann ich mit Acrobat 7 einsehen.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das sich das Datenblatt einsehen lässt wundert mich sehr, da ich
bereits an einem anderen Rechner auch probleme damit habe. das hat mich
doch verunsichert.

Eindeutig war das ganze nun leider nicht für mich....

Martin

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Endlich!!!! ich habe es geschafft.

das display läuft einwandfrei.

es benötigt keine initialisierungssequenz, die Befehle stehen in den
Datenblättern am anfang dieses Threads.

am wichtigsten ist der Display ON Befehl. also 3F ans Display

anschließend können der Zeilenzeiger und der Spaltenzeiger auf Null
gesetzt werden.

das Display besitzt Sram das als erstes auf 0 gesetzt werden muss, also
alle Zeilen durchgehen und mit 0 initialisieren...

im anhang ein Bild meines ersten Textes.

Martin

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hier nochmal ein kleiner Text,

die Displayversorgung ist übrigens mit einem max232 realisiert. das
funktioniert super, er liefert die negative spannung, und der strom
reicht absolut aus um das gesamte display dunkel zu bekommen.

zudem kostet er nur 40cent, momentan bei pollin. ein kleines poti und
ab gehts...

martin

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist wie Weihnachten was? :-)

Mich wundert allerdings etwas das dir dein Drahtverhau
keine Probleme macht. Sprichst du das Display noch sehr
langsam an?

Olaf

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur zur Info...
das Display gibt es auch mit und ohne Backlight (18 oder 16 PINS)

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Sebastian,

aber nicht für 14€

@Olaf,

bevor ich einen Software bzw Platinenentwurf mache, probiere ich alle
Dinge vorerst mit einer art steckkastensystem das ich schon über
mehrere Jahre mitführe, aus. Dieser drahtverhau betseht aus Kabeln mit
vergoldeten steckern, die in alle gängigen Sockel/Pins/ usw passen, so
kann ich meine entwicklung schrittweise in ein Endstadium überführen
und habe keine Fehlentwicklung....

Wie schon erwähnt, spreche ich das display vorerst mit entprellten
Tasen an, probiere einige Dinge zur Versorgung, wie die Sache mit der
Negativen Spannung und dem max232 z.B. ...

Was die Timings angeht, so sind die nat, quasi noch nicht vorhanden.

Das geschieht im nächsten Schritt mit der ersten Softwarapp, die dann
die Hardwareroutine bilden wird... um anschließend mit höheren
Funktionen auf zu setzten usw... oder code zu übernehmen, ich meine
www.apetech.de hat dort etwas, aber das ist noch hin...

Eine App. wäre ein kleines Oszilloskop, das sich jetzt ja sehr günstig
und relativ schnell entwickeln lässt...

später schwebt mir eine schnittstelle mit 3 verschiedenen, frei
positionierbaren Schriftgrößen (Ascii) und einigen wenigen
Zeichenfunktionen (kreis,Rechteck,Strich) und den Passenden
Füllungen(Rahmen,Invert,Fill) vor. also in Anlehnung an das
Halbgrafische VFD von Conrad, nur das hier mehr Bildbereich vorhanden
ist....sowie ein zugriff auf das Grafikram über den Displaycontroller,
um dann auch kleine Icons oder ä. auf den Bildschirm zu bringen,


 und wer weiß, vielleicht kennt ja jemand, jemanden der hier noch etwas
im Nähkästchen hat!?

Das ist eine Menge Arbeit, und mir ist klar -> das gibt es schon, aber
der reiz liegt zumindest Teilweise im selber machen..

Martin.

Ps.: ich möchte mich nochmals bedanken, für die vielen Posts und die
Unterstützung, manchmal sieht man den Wald vor lauter Bäumen nicht...

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das was du da machen willst haben Burkhard und ich im Prinzip alles
schon gemacht. Soll in der naechsten Elektor stehen.
Allerdings fuer den R8C :-)
Da es aber durchgaengig in C programmiert ist sollte es kein Problem
sein viel zu uebernehmen. Du musst halt nur eine Routine bereitstellen
welche ein beliebiges Pixel auf deinem Display setzen kann. Ich
verwende meinen Source sonst auch fuer unterschiedlichste Prozessoren
und Displays.
Das Display das wir in der Elektor vorstellen werden laesst sich im
uebrigen auch sehr gut von der Seite ablesen. Daher waere es auch
denkbar es in einer Anwendung hochkannt einzubauen. Soweit ich weiss
will Burkhard das Display dann auch bei Modul-bus ins Programm
aufnehmen damit man es in Einzelstueckzahlen kaufen kann.

Da ich meine Display ausschliesslich seriell anspreche, habe ich mir
eine eigene 6polige Grafikschnittstelle definiert an der ich die
unterschiedlichsten LCDs anstecken kann. (SED1520/1560 und der KSxxx
aus der Elektor) Interessanterweise sind diese Displayprozessoren sich
oftmals extrem aehnlich. Ich selber habe sogar einen Source wo ich nur
in einem einzigen Define zwischen den Displaytypen mit ihren
unterschiedlihen Aufloesungen umschalten kann. Allerdings haben wir das
fuer die Elektor abgespeckt damit es fuer Einsteiger nicht zu
kompliziert wird.

Olaf

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohhh Olaf,

das ist ja eine klasse Sache, aber ob der weg für mich dann kürzer
wird..

ich habe dazu eigentlich erstmal nur 3 fragen.

1)haltet ihr eine kopie der graficken im ram am controller, oder
kommuniziert ihr jedesmal mit dem display, um z.b bei überlappungen der
Buchstaben schon im vorraus zu wissen, welcher bereich überschrieben
werden kann, und welcher stehen bleiben muss, also eine art
layertechnik!?das ganze würde ja, wenn man jedesmal erst das zu
schreibende byte vom display liest, um anschließend eine arytmetische
op mit dem neuen byte auszuführen und es anschließend zurück schreibt,
unheimlich träge sein, oder!?

2)wenn eine funktion zum setzten eines pixels, die unterste schicht
eurer Software bildet, also guasi eine softwareschnittstelle(die ich
mir auch schon so vorgestellet hatte), dann muss ja notwendigerweise
eine funktion vorhanden sein, die innerhalb von set(x,Y - z.B.) eine
überprüfung macht, ob in dem zu schreibenden byte ans display schon ein
anderer pixel gesetzt ist. schneller ist dann doch eine kopie im ram zu
ahlten, oder...

3)viele geben dann diese grafik über einen timer interrupt fortlaufend
aus, wenn display direkt getrieben werden (Matrixverfahren) frisst
diese funktion meist sehr viel Rechenzeit...


also mich würden eure denkansätze sehr interessieren, und vieleicht
lässt sich ja euer code auf den fujitsu portieren, dann kann ich mir
evtl. einiges sparen....fragt sich zwar wann, aber es ist zumindest
einen versuch wert...

Martin

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann die Displays eigentlich sehr schnell ansprechen. Von daher
waere es nicht unbedingt notwendig eine Kopie im Ram zu halten. Dies
gilt sogar dann man sie seriell anspricht. Wenn ich mich recht erinnere
arbeite ich mit einem Takt von 1.6Mhz auf der Clk Leitung. Es kann
uebrigens nicht schaden die Leitung dann zu terminieren. .-)

LEIDER aber haben bisher alle Display die ich mir angeschaut habe zwar
einen seriellen Eingang, aber keinen Ausgang. Daher ist das zwingend
notwendig eine Kopie im Ram zu behalten. Das ist sehr aergerlich!

Bei dem ersten Display das ich so angesprochen hatte aber ich 384Byte
im Ram benoetigt. Da der R8C den ich verwende aber 1kB hat war das kein
grosses Problem. Ein 128x64 braucht aber 1kByte. Deshalb habe ich den
Olaf-Algorythmus erfunden. :-)
Ich habe einen mitlaufen Puffer welcher sich immer die zuletzt
benutzten Bytes merkt. So kann man z.b problemlos Linien zeichnen.
Es gibt aber Probleme wenn man sehr viel wild durcheinander auf dem
Display zeichnet. Man kann das aber durch die groesse dieses Puffers
und der Reihenfolge in der man etwas ausgibt beeinflussen. Ich verwende
z.b das 128x64Display mit einem Buffer der 384Byte gross ist und sich
die letzten 128Ausgaben merken kann.
Bei der Ausgabe als Ossibildschirm kam Burkhard sogar mit wesentlich
weniger Ram aus. Man kann das mit einem define beliebig festlegen.

Ich gebe uebrigens auch die Buchstaben alle pixelweise aus. Das ist
eigentlich eine immense Rechnenzeitverschwendung. Da aber die
Prozessoren heute so schnell sind ist das kein Problem. Das beschreiben
des gesamten Bildschirms, also das setzen jedes einzelen Pixel lag
irgendwo im Bereich von 1s. Dafuer hat man aber natuerlich den Vorteil
das man den Text Pixelweise positionieren kann. Oder auch sehr leicht
um 90Grad gedreht schreiben koennte.
Burkhard hat uebrigens nicht nur einen Ossi sondern auch einen
Spectrumanalyzer laufen. Hab ich zwar bisher nur auf Photos gesehen,
sah aber ganz knuffig aus.

Hier kann man uebrigens sehen wie das Display hochkannt genutzt wird:
   http://www.criseis.ruhr.de/kitty.jpg
Mich hat die Qualitaet da sehr positiv ueberrascht. Man koennte ja mal
ein Tetris programmieren....

Olaf

Autor: Klaus F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man genug Ram im uP hat, ist es wohl (immer) einfacher, wenn man
die ganze Grafik im Prozessorram aufbaut und immer komplett ausgibt. Es
lohnt sich nicht, da lange hin- und rückzulesen und Änderungsstellen zu
bestimmen etc.
Bei Controllern, die keine "Layer" von sich aus über "OR"
verknüpfen können, mag es applikationsabhängig Sinn machen, sogar 2
oder 3 interne Rambereiche zu halten.
Einen für die "Grafik", den zweiten für den "Text" (Buchstaben /
Beschriftungen etc) und evtl. weitere für Cursorlinien etc.
So braucht man bei Änderung des "Textes" den Teil "Grafik"-Teil
nicht neu zeichnen (im uP Ram).
Die Ausgaberoutine ans LCD macht dann eine OR-Verknüpfung der
jeweiligen Bytes aus den zwei/drei Layern und gibt das OR-Ergebnis dann
direkt aus.
Klaus

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ueber einen Timerinterrupt wuerde ich nur dann etwas ausgeben wenn
das Display dauernde Zuwendung braucht. Sowas mache ich z.B bei VFDs wo
ich die Gitter direkt ansteuere.
Man sollte bedenken das man bei den meisten Anwendungen im Bereich
Messtechnik oder was einem sonst so einfaellt ja eigentlich nur einen
Screen aufbaut und dann danach nur noch wenige sich aendernde Messwerte
ausgibt.

Ausserdem solltet du noch etwas anderes beachten. Die Ausgabe von Text
oder Grafik an einem Display ist sehr timing unkritisch. Dir als User
ist es egal ob ein Zeichen immer nach 0.01s oder auch mal nach 0.02s
erscheint. Es empfiehlt sich daher solche Sachen im Vordergrund zu
halten und sich die Interrupts fuer die wirklich zeitkritischen Sachen
offen zu halten. Und ganz besonders empfiehlt es sich das zu tun wenn
man auf einem AVR programmiert und keine Interruptprioritaeten vergeben
kann. Nicht jeder hat leden Luxus eine R8C. <floet>

Olaf

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@KLaus:

eine gute Idee mit mehreren Layern zu arbeiten. Ähnlich habe ich es ja
auch angedacht, ich bin mir dennoch nicht ganz im klaren, ob ich dieses
rücklesen doch machen werde, aber ich denke das es von der sache her
sehr umständlich sein wird.

@Olaf

nette kitty

interessant wären nat. ein paar bilder vom spectrum
analyser...irgentwann war hier mal ein thread über eine hyperschnelle
fft, echt klasse, ganze schaaren haben dich den code runtergeladen und
installiert, aber keiner wusste warum er eigentlich funktioniert. gab
aber viele interessante diskusionen und bilder..infos

Ossi,
die sache mit dem ossi ist nat besonders reizvoll, und besonders
einfach, also im bezug darauf das man ja keine fonts/striche/usw..
braucht, man kann mit wenig aufwand die ad wandler ergebnisse in eine
dezimalzahl umrechenen und den entsprechenden pixeleinschalten, das
ganze mit timer und schon hat man ein definirtes tor... :-))) also
zumindest so ungefähr...

VFD,
ich habe mal mit dem halbgrafischen vfd von conrad ein menü geschrieben
und eine temperaturanzeige de lüx fürs auto damit realisier, nat auf
einem fujitsu :-))(dort gibts prioritäten), wenn rudimentäre routinen
vorhanden sind, ist es ein einfaches ein schönes kleines menü zu
erzeugen...

R8c,
der liegt hier auch noch in doppelter ausführung rum, ich hatte bisher
nur ein wenig mit seinem großen bruder dem M16C zu tun, aber der kleine
spielte vorletzte woche locker sein jingle bells... - ist erschreckend
wie schnell manche menschen es schaffen mit dem teil eine sache wie ein
ossi oder ein spectrumanalyser zu baun - ich hing bis vor kurzem noch am
GBDSO :-)

Refresch,
das mit dem timings liegt wohl ein wenig an meiner vorherigen arbeit,
dabei habe ich 4 led matrixdisplays fortwährend refreschen müssen, ist
ein anderes konzept... also von daher stimmts natürlich, das das timing
bei diesem display nicht so wichtig ist, ausser man will hohe frequenzen
mit dem ossi messen und nichts zwischenspeichern...aber vielelicht wäre
dann auch der ad wandler das nadelöhr - ich weiss nicht, kommt noch...

Martin

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Olaf,

so sieht übrigens ein erster überblick über die eigenschaften der
schrifterzeugung meinerseits aus,

ist aber nur ein grobentwurf.

was mich interessieren würde, setzt ihr eigentlich eine
vektororientierte schrift ein, würde mich mal interessieren wie das
funktioniert, also das man quasi die eigenschaften der shcrift
abspeichert und sie dann automatisch in jeder größe auf dem bildschirm
erzeugen kann....

alles weitere fällt wohl in ein anderes forum, oder!?

martin

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.