mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SED1335 - Problem: duplizierte Darstellung


Autor: Dominik S. Herwald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich bin gerade dabei das Display SP14Q002 von Hitachi mit 320x240px
über einen SED1335F anzusteuern.
(s.a. http://www.mikrocontroller.net/forum/read-1-29525.html )

Klappt auch recht gut. Text und Grafik lassen sich ohne Probleme an den
SED1335 übertragen.


Mein Problem liegt nun darin, dass das erste und das letzte Byte in
jeder Zeile dupliziert dargestellt wird. Und zwar so wie ich es hier
mal versuche darzustellen:


     1                        ...                      320
     ___________________________________________________
1   |                                                    A| 1
2   |ABC                                                  | 2
3   |                                                     | 3
4   |                                                    .| 4
5   |.                                                    | 5

...                                                         ...
240 |_____________________________________________________| 240


In Der Zeile 2 An Position 1 wird der Text ABC ausgegeben -
dann erscheint der erste Buchstabe auch in Zeile 1 an Position 320!!

Das gleiche umgekehrt - wenn z.B. in Zeile 4 an Position 320 ein Pixel
gesetzt wird, taucht es auch in Zeile 5 an Position 1 auf!!!

Sogar wenn der Blinkende Cursor am Rand der Displays ist, wird er
Doppelt dargestellt!


Weiss jemand woran dass liegen könnte ?!


Hier mal die Initialisierungssequenz (Sprache: Java - spielt aber keine
Rolle ; unwichtige Sachen habe ich gekürzt.
write(true,xxxxx) sendet ein Kommando an den SED1335,
write(false,xxxxx) sendet Daten...):

[...]

write(true, SYSTEM_SET);
write(false, 0x30); // | 0 | 0 | IV | 1 | W/S | M2 | M1 | M0 |
write(false, 0x87); // | WF | 0 | 0 | 0 | 0 | FX | FX | FX |
write(false, 0x07); // | 0 | 0 | 0 | 0 | FY | FY | FY | FY |
write(false, 0x27); // C/R
write(false, 0x5f); // TC/R
write(false, 0xef); // L/F
write(false, 0x27); // APL
write(false, 0x00); // APH

write(true, OVLAY);
write(false, 0x01); // | 0 | 0 | 0 | OV | DM2 | DM1 | MX1 | MX0 |

write(true, SCROLL);
write(false, 0x00); // SAD1L
write(false, 0x00); // SAD1H
write(false, 0xef); // SL1
write(false, 0xb0); // SAD2L
write(false, 0x04); // SAD2H
write(false, 0xef); // SL2

[...]

write(true, DISP_ON);
write(false, 0x16); // | FP5 | FP4 | FP3 | FP2 | FP1 | FP0 | FC1 |FC0

[...]


MfG,
Dominik S. Herwald

http://www.dsh-elektronik.de/

Autor: Mark de Jong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

Setzte denn APL mal auf 0x28, dann musste es richtig funktionieren.

Kannste es auch auf ein größere zahl setzten zum einfacher rechnen.

Grüße Mark.

Autor: Dominik S. Herwald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mark!

Danke für deine Antwort, aber das hab ich auch schon getestet - ergibt
nur seltsame Verzerrungs Effekte auf dem Display - funktioniert also
nicht.

Ich habe da auch schon sowohl bei C/R und APL andere Werte getestet
(größer oder kleiner 27) - jedesmal kam es zu fehlerhaften und
verzerrten bzw. verschobenen Darstellungen.
Es funktioniert eigentlich nur mit 0x27 (= 39 Dezimal) für beide...

Gibt es evtl. eine andere Möglichkeit das Problem zu lösen?

MfG,
DSH

Autor: formtapez (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss zwar nicht wo dran es liegen kann, aber probier doch einfach
mal meine Initialisierungswerte. Ich hatte ja auch schon ein Thread
aufgemacht:

http://www.mikrocontroller.net/forum/read-4-39083.html

MfG
formtapez

Autor: Dominik S. Herwald (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Tja - Bilder sagen schätzungsweise mehr als Worte:

So sollte es aussehen (s. Anhang - Und der rechte Balken am Rand sollte
eigentlich gar nicht da sein, es wird nur der linke gezeichnet!)

...

Autor: Dominik S. Herwald (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und so sieht es mit deinen Initialisierungswerten aus (aber auch nur
wenn ich eben APL auf 28 setzte! Mit 27 gehts!)

Funktioniert dass so bei dir wirklich ohne Probleme? Seltsam ...

MfG,
DSH

Autor: Dominik S. Herwald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry da habe ich wohl etwas zu voreilig gepostet.

Es geht nun doch - der Cursor wurde noch falsch gesetzt - dass hatte
ich an APL = 0x27 angepasst und nicht an APL = 0x28...
Da wurde z.B. die Adresse beim Setzten eines Pixels noch mit

int adr = (x / 8) + (y * 39) + 0x4b0;

und nicht mit

int adr = (x / 8) + (y * 40) + 0x4b0;

berechnet!
Lag mal wieder an so einer kleinigkeit packSichAnDenKopp

Jetzt gehts aber wunderbar! freu
Vielen Dank an euch beide!

MfG,
Dominik S. Herwald

http://www.dsh-elektronik.de/

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.