s1d13700 die 2.

OP #1033865
Lesenswert?

Also:

nach einigem Stillstand, mach ich seit heute nun weiter.

folgendes dilemma:

das display funktioniert einige zeit (<1min) dann scheint die 
übertragung der adresse nicht zu klappen, er zeichnet den zeileninhalt 
einfach in die nächste spalte, statt wie in meinem testbild gewünscht,in 
die nächste zeile, gleiche spalte.

das wiederrum macht er ca 10 sek, dann wird der bildschirm komplett 
schwarz.

merklich ist das eindeutig, weil ich ihn nur eine spalte beschreiben 
lasse (also text vertikal sozusagen).

timingmäßig hab ich so ziemlich alles durch was mir möglich war.

habt ihr eine idee?
OP #1034179
Lesenswert?

1
void GLCD_WriteData(unsigned char dataToWrite)
2
{
3
  // Generic Interface
4
  S1D13700_DATA_DIR = 0x00;
5
  S1D13700_DATA_PORT = dataToWrite;
6
  NOP();
7
  NOP();
8
  S1D13700_CONTROL_PORT &= ~(S1D13700_CS | S1D13700_A0 | S1D13700_WR);
9

10
  NOP(); 
11
  NOP();
12
  NOP();
13
  S1D13700_CONTROL_PORT |= (S1D13700_CS | S1D13700_A0 | S1D13700_WR);
14

15
}
16
//-------------------------------------------------------------------------------------------------
17
//-------------------------------------------------------------------------------------------------
18
void GLCD_WriteCommand(unsigned char commandToWrite)
19
{
20
  S1D13700_DATA_DIR = 0x00;
21
  S1D13700_DATA_PORT = commandToWrite;
22
  NOP();
23
  NOP();
24
  S1D13700_CONTROL_PORT &= ~(S1D13700_CS | S1D13700_WR);
25

26
  NOP();
27
  NOP();
28
  NOP();  
29
  S1D13700_CONTROL_PORT |= (S1D13700_CS | S1D13700_WR);
30
}
31
//-------------------------------------------------------------------------------------------------
32
//-------------------------------------------------------------------------------------------------
33
unsigned char GLCD_ReadData(void)
34
{
35
  unsigned char tmp;
36
  S1D13700_DATA_DIR = 0xFF;
37
  S1D13700_CONTROL_PORT &= ~(S1D13700_CS | S1D13700_RD);
38
  NOP();
39
  NOP();
40
  NOP();
41
  NOP();
42
  tmp =  S1D13700_DATA_PORT_IN;
43
  S1D13700_CONTROL_PORT |= (S1D13700_CS | S1D13700_RD);
44

45
  return tmp;
46
}

danke das du dich meiner annimmst :)
OP #1034198
Lesenswert?

ich adressiere indirekt, also keine adressen.

aber ich werd mal CS vorziehen, melde gleich was passiert

edit:

nun
1
void GLCD_WriteCommand(unsigned char commandToWrite)
2
{
3
  S1D13700_DATA_DIR = 0x00;
4
  S1D13700_DATA_PORT = commandToWrite;
5
  NOP();
6
  S1D13700_CONTROL_PORT &= ~(S1D13700_CS);
7
  NOP();
8

9
  S1D13700_CONTROL_PORT &= ~(S1D13700_CS | S1D13700_WR);
10

11
  NOP();
12
  NOP();
13
  NOP();  
14
  S1D13700_CONTROL_PORT |= (S1D13700_CS | S1D13700_WR);
15
}

leider keine verbesserung.
OP #1034230
Lesenswert?

meine güte, bisher scheint das echt zu klappen, ich wills nicht 
verschreien.

ich werd wie versprochen die routinen in die codesammlung einpflegen :)

herzlichen dank!!!

eine frage noch, hast du eine software die mir passende schrift-arrays 
machen kann?

die einteilung ist ja leider anders als beim ks108, folglich haben alle 
freewareprogramme für mich nichts passendes erzeugt.

mittlerweile rennts schon mehr als 3 minuten =)

ps: noch eine frage, mir scheint der konstrast etwas zu wenig, 
allerdings kommen mir balken mit unterschiedlicher helligkeit wenn ich 
am poti drehe, liegt das vl an der config?
#1034246
Lesenswert?

Michael H. wrote:
> meine güte, bisher scheint das echt zu klappen, ich wills nicht
> verschreien.

Die Epson Controller sind sehr pingelig was das Timing angeht. Ich hatte 
mal stunden gebraucht um einen S1D13504 zum Laufen zu bekommen (obwohl 
die Software copy&paste aus einem funktionierenden Projekt war, nur die 
IO Routinen musste ich anpassen). Der hatte ähnliche Anforderungen ans 
Timing, die man wirklich bis ins letze Detail befolgen musste, damit das 
ganze zuverlässig lief.

> eine frage noch, hast du eine software die mir passende schrift-arrays
> machen kann?

Hier sind ein paar Schriftarten in allen möglichen Ausrichtungen.
Beitrag "LCD Schriftarten ( Fonts in veschiedenen Größen )"

Ansonsten sollten auch alle Font Tools für den T6963 funktionieren, z.B. 
sowas wie hier:
Beitrag "GLCD T6963C Font-Tool"

> ps: noch eine frage, mir scheint der konstrast etwas zu wenig,
> allerdings kommen mir balken mit unterschiedlicher helligkeit wenn ich
> am poti drehe, liegt das vl an der config?

Kann ich mir eher nicht vorstellen.
Wenn du große Blöcke, lange senkrechte oder waagrechte Linien anzeigst, 
dann kann es durchaus zu Übersprechen kommen, das ergibt dann 
unterschiedliche Helligkeiten. Oder hast du vielleicht den 4/16 
Graustufenmodus aktiviert?
OP #1034252
Lesenswert?

sorry, schlecht ausgedrückt.

es sind zeilen a 10-12 pixel hoch -> von oben nach unten unterschiedlich 
hell, leuchten halt dezent durch. denke also an die zeilentreiber. wie 
gesagt, man kanns ja wegblenden, mich wundert nur das es nicht 
gleichmäßig ist.

meins hatte ich übrigens auch übernommen ;) darum fand ich das mim 
timing so merkwürdig.

nochmals danke =) graustufen kommen nun dran wo das schreiben langsam 
funktioniert.
Gast #1120115
Lesenswert?

Verzeiht mir das ungeschick, ich habs nicht vergessen, ich habs schlicht 
nicht fertig...

der code sieht recht grausam aus, er entlockt dem display aber zumindest 
mal ein paar pixel.

ich werd mich wie versprochen melden wenn ich das in eine vernünftige 
form gebracht hab, ich hatte nur bisher wenig interesse daran weil ich 
ein wenig was fürs studium tun musste :)
Angehängte Dateien:
#1178204
Lesenswert?

Hi morph1 (Gast), is the following code function well ??

void GLCD_GraphicGoTo(unsigned int x, unsigned int y)
{
GLCD_SetCursorAddress(SED1335_GRAPHICSTART + (y * 40) + x/8);
}

and

void GLCD_Bitmap(char * bmp, int x, int y, int width, int height)
{
unsigned int i, j;
for(i = 0; i < height ; i++)
  {
  GLCD_GraphicGoTo(x, y+i);
  GLCD_WriteCommand(SED1335_MWRITE);
  for(j = 0; j < width/8; j++)
    GLCD_WriteData(GLCD_ReadByteFromROMMemory(bmp+j+(40*i)));
  }
}

and

char GLCD_ReadByteFromROMMemory(char * ptr)
{
return *(ptr);
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren