Wie kann man einzelne Bildpunkte mit dem oben genannten Controller setzen? z.B. soll auf einer Flüssigkristallanzeige mit 320x240 Bildpunkten bei x =100 y =100 ein Punkt gesetzt werden. Durch laufende Erhöhung des x-Wertes um 1 soll dann mal eine Linie entstehen. Eine Abwandlung des Programms einer funktionierenden 240x128 Anzeige mit dem Controller T6973c ist mir leider nicht gelungen. MfG Wolfgang
Der 13305 kann nur Byteweise schreiben/lesen. Du musst also ein Byte lesen, das entsprechende Bit in dem Byte setzen und dann das Byte zurückschreiben.
Danke, leider hab ich es nicht so richtig verstanden mit dem schreiben/lesen. Vielleicht hilft mir ein Programmschnipsel mit etwas Kommentar. Hast Du zufällig ein Beispiel in 'C', welches Du mir zur Verfügung stellen kannst? MfG Wolfgang
> leider hab ich es nicht so richtig verstanden mit dem schreiben/lesen.
Ist doch ganz einfach, du liesst ein Byte aus dem Displayram und
kannst dann mir or/and ein Pixel setzen oder loeschen.
Olaf
>Ist doch ganz einfach, du liesst ein Byte aus dem Displayram und >kannst dann mir or/and ein Pixel setzen oder loeschen. Wenn es für mich soo einfach wäre, dann hätte ich nicht gefragt. Meine Anzeige hat 320 x 240 Bildpunkte oder bei einer Zeichengröße von 8 x 8 Bildpunkten 40 Zeichen pro Spalte und 30 Zeilen. Mit dem Steuerbefehl 46h (Ao=H), gefolgt von 2 Bytes (Ao=L), schreibe ich die Cursoradresse, an dem mit dem Steuerbefehl 42h dann ein Zeichen geschrieben wird. (funktioniert) Um wieder zur Ausgangsfrage zu kommen: welches Byte muss ich schreiben/lesen, um z. B. an der Stelle x=100, y=100 einen Punkt zu erzeugen? Muss man die Anzeige speziell initialisieren? Vielleicht hat doch noch jemand ein Programmschnipsel für mich. MfG Wolfgang
Wolfgang-G wrote: > Um wieder zur Ausgangsfrage zu kommen: welches Byte muss ich > schreiben/lesen, um z. B. an der Stelle x=100, y=100 einen Punkt zu > erzeugen? Habe ich doch schon gesagt: Das geht nicht so einfach ! Du kannst immer nur 8 Pixel auf einmal schreiben.
Man möchte ja nicht unhöflich sein, aber einmal sagt Olaf: "Ist doch ganz einfach" dann heißt es: "Das geht nicht so einfach!" Vielleicht hat Olaf ein "einfaches" Programmschnipsel. Wie ist das mit dem zu schreibenden Byte (8 Pixel) gemeint? Ein Byte besteht doch aus 8 Bit und stellt in dezimaler Wertigkeit die Werte 0...255 dar. Man kann aber auch jedem Wert irgendetwas zuordnen. MfG Wolfgang
Wolfgang-G wrote: > Man möchte ja nicht unhöflich sein, aber einmal sagt > Olaf: "Ist doch ganz einfach" > dann heißt es: "Das geht nicht so einfach!" Es ist einfach, aber du stellst dir das zu einfach vor: Es sind ein paar Befehle notwendig, einer alleine reicht nicht. > Wie ist das mit dem zu schreibenden Byte (8 Pixel) gemeint? Ein Byte > besteht doch aus 8 Bit und stellt in dezimaler Wertigkeit die Werte > 0...255 dar. Man kann aber auch jedem Wert irgendetwas zuordnen. Jedes Byte hat 8bit, und jedes Bit ist ein Pixel. In einem Byte stecken also 8 nebeneinander liegende Pixel. Bisher alles soweit klar ? OK, dann weiter: Um jetzt 1 Pixel (=1bit) zu setzen, musst du die anderen Bits beibehalten und nur dieses eine setzen. Dies geschieht durch eine ODER Operation. Du musst also das entsprechende Byte lesen, das eine Bit setzen und das ganze zurückschreiben. Einen fertigen Code habe ich dazu leider nicht, da ich mit dem 13305 recht wenig arbeite.
> Bisher alles soweit klar ?
Und sollte es aus irgendeinem Grund nicht klar sein, so kann man ja
einfach mal 0xaa, 0xf0 oder 0x0f ins Display schreiben. Wenn man
dann die Ausgabe auf dem LCD sieht sollte es nun aber allerspaetens
klar sein....
Olaf
>Bisher alles soweit klar ?
Ja, ich sag mal so: es dämmert.
Aber irgendwo muss bestimmt noch etwas eingestellt werden.
Entweder erhalte ich Textzeichen oder, wenn tatsächlich die gewünschten
Bildpunkte erscheinen, dann enthält der Bildschirm noch irgendwelche
Striche und Punkte. Aber das ist bei mir nur Probieren ohne richtiges
Wissen.
Vielleicht hat noch jemand einen Tipp.
MfG
Wolfgang
> Aber das ist bei mir nur Probieren ohne richtiges Wissen.
Also das DAtenblatt muss man schon noch selber lesen und verstehen.
Wenn man dazu nicht in der Lage ist dann wird das nie was.
Und es bringt auch nichts mit der ueblichen Abschreibmentalitaet
zu arbeiten weil der gerade dieser Displaycontroller wirklich
jede Menge Dinge einstellbar hat. (z.B mehrere Pages, position im
Displayram, Text-Mode, Grafik-Mode, Beides usw)
Ausserdem sollte man DRINGENST das Datenblatt vom Hersteller des LCDs
gelesen haben und schauen was der als Initialisierung vorschreibt. Da
gibt es naemlich unabhaengig vom Displaycontroller verschiedene
Moeglichkeiten.
Wenn man da was falsches reinschreibt weil man es von jemand anderem
abkupfert der ein anderes Display mit SED1335 benutzt dann kann man
damit
sein LCD zerstoeren.
Olaf
@Olaf Leider bringt mich Dein belehrender Beitrag nicht weiter. Schade um die Zeit, die Du dafür geopfert hast. >Also das DAtenblatt muss man schon noch selber lesen und verstehen. >Wenn man dazu nicht in der Lage ist dann wird das nie was. Ich gebe mir zwar Mühe, ein Datenblatt zu verstehen, aber zu meiner Schulzeit gab kein Englisch. (nur Russisch) >Wenn man da was falsches reinschreibt ...dann kann man damit sein LCD >zerstoeren. Deshalb wollte ich ja auch nicht soviel probieren und suche hier zusätzliche Hilfe bei Leuten, die sich damit besser auskennen. >Text-Mode, Grafik-Mode, Beides usw Vielleicht kannst Du mir hierzu doch einen Tipp geben, wo ich dazu im Datenblatt etwas finde oder noch besser: was muss ich wie und wo einstellen. Wolfgang
> Leider bringt mich Dein belehrender Beitrag nicht weiter. Das ist dann aber nicht zu aendern. Die Dinger sind zu kompliziert als das man sie mal eben so erklaeren kann. > Schulzeit gab kein Englisch. (nur Russisch) Das ist zwar sicherlich aergerlich, aber fuer Elektronik ziemlich unpraktisch. Vielleicht solltest du dann ein anderes Display in erwaegung ziehen. Der SED1335 ist wirklich ein eher schwerer Fall. > Vielleicht kannst Du mir hierzu doch einen Tipp geben, wo ich dazu im > Datenblatt etwas finde oder noch besser: was muss ich wie und wo > einstellen. Eigentlich ueberrall. Man muss das lesen und sich dann immer Werte zu den Timings anhand des Panels ausrechen. Und weil das so problematisch ist haben viele Hersteller die Initialisierungsequenz oft in ihrem Datenblatt zum Panel stehen. Es gab vom Hersteller des SED1335 auch eine Software wo du diese Werte eintippen konntest und die hat dir dann einen C-Code generiert der das Display initialisert hat. Noch ein Tip, wenn du irgendwas rumprobierst schalte das Display immer aus wenn du nicht draufschaust. Es kann dir sonst passieren das du mal kurz aufs Klo gehst, oder 10min im Datenblatt liesst und wenn du wieder auf dein Display blickst ist es verstorben weil das Timing nicht gestimmt hat. Sobald die Pixel anfangen irgendwie komisch auszusehen, abschalten! Olaf
>mit der ueblichen Abschreibmentalitaet zu arbeiten Na, na, das hat hier m. E. mit Abschreiben nichts zu tun, sondern mit der Vermeidung von "uneffektiver" Lernarbeit, da die Programmierung von LCD- Controllern nicht unbedingt zu den Grundlagen der Elektronik (wie z.B. Operationverstärker-Technik oder Transistorschaltungen) gehört. Nimm Dir mal ein Beispiel an Benedikt: immer konkrete Antwort >Die Dinger sind zu kompliziert als das man sie mal eben so erklaeren kann. Nun mach die Sache nicht schwerer als sie ist. Mit einigen konkreten Hinweisen kann man auch hier Hilfe geben. Falls jemand vor dem gleichen Problem (einzelne Bildpunkte setzen) steht, dann kann er bei mir nachfragen. Man muss ja das Fahrrad nicht noch einmal erfinden, denn so ein spezieller Controller und die Bitschubserei gehört nicht zu den Grundlagen der Elektronik. Ein Problem konnte ich allerdings noch nicht lösen: mir gelingt es nicht, Text und das Zeichnen von Linien (Grafik) zusammen auf den Bildschirm zu bringen. Vielleicht hat jemand einen Tipp. MfG Wolfgang
Hallo! Ohne Abschreiben hätte wohl Keiner eine Chance zu lernen. Also hier das, was ich mal zum SED1335 fand und nach langer Probiererei zum laufen brachte(s.Anhang, *.h folgt). Dem Schreiber sei Dank! Das Timing und die ewige INIT- Befehlskette, welche notwendig ist, um dem Display überhaupt eine Reaktion abzuverlangen, ist ziemlich entmutigend gewesen. Sich DAS alles aus Datenblättern selbst zu erarbeiten, ist wirklich harte Arbeit. Ich benutze das OPTREX 128*128, was vor einiger Zeit mal bei Pollin rumgeisterte. Damit habe ich mal einen lahmen Oszi gebastelt, liegt halbbeendet auf dem Schreibtisch... Viel Spaß! ulf.
Danke Ulf, schade, dass Du erst jetzt mir Deine Hilfe anbieten konntest. Ich hätte mir viel Zeit und > wirklich harte Arbeit < sparen können. Es war "nur eine Kleinigkeit", die ich ändern musste. Es lag an der Größe des Bildspeichers für Text. Da hatte ich nur 40x30=1200 Adressen vorgesehen. Es ist mir zwar noch nicht klar, warum der Bildspeicher erst bei 4096 beginnen muss, aber das ist mir erst einmal egal. Im Wesentlichen läuft die Anzeige jetzt zu meiner Zufriedenheit. >Damit habe ich mal einen lahmen Oszi gebastelt, liegt halbbeendet auf >dem Schreibtisch... nicht unbedingt liegen lassen, aber Verwendungszweck ändern.(evtl. Temperaturverlauf aufnehmen, Wetterdaten schreiben; ich schreibe EKG-kurven -Text ist für Anzeige der Pulsfrequenz) MfG Wolfgang
> Ein Problem konnte ich allerdings noch nicht lösen: mir gelingt es > nicht, Text und das Zeichnen von Linien (Grafik) zusammen auf den > Bildschirm zu bringen. Es gibt da irgendwo ein Register wo du einschalten kannst was es zu Darstellung bringen soll. Allerdings bin ich der Meinung das man sich die Muehe sparen kann. Zum einen sieht der Zeichensatz im Textmodus nicht so schoen aus, zum anderen mangelt es ihm an Deutschen Sonderzeichen. > Das Timing und die ewige INIT- Befehlskette, welche notwendig ist, > um dem Display überhaupt eine Reaktion abzuverlangen, ist ziemlich > entmutigend gewesen. Sich DAS alles aus Datenblättern selbst zu > erarbeiten, ist wirklich harte Arbeit. Dies steht im Datenblatt des LCDs immer drin, ausserdem muss man danach immer nochmal alles durchgehen weil man die Parameter ja seinen Beduerfnissen anspassen muss. Und wenn bereits das Lesen eines Datenblatt harte Arbeit sein soll.... > EKG-kurven -Text ist für Anzeige der Pulsfrequenz) Wenn du nicht immer nur den ganzen Bildschirm vollschreiben willst, sondern lediglich hier und da mal einen Satz ausgeben, so ist es viel besser einen eigenen Zeichensatz zu verwenden. Zumal du ja dann sogar entscheiden kannst wie gross der sein kann. Olaf
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.