The Siemens S65 132x176, 65536 color display with AVR

Persönliche Seite #1224212
Lesenswert?

Schade, dass das Bearbeiten von "alten" Beiträgen nicht mehr möglich 
ist.

Daher hier ein Nachtrag: Er hängt in SPI_SEND_0 und zwar beim ersten 
Aufruf...

Ich vermute daher, dass er das SPI-Senden nicht abschließt.

Ich habe bisher noch keine Erfahrungen mit SPI und kann mir im Moment 
nicht erklären, woran das liegt.. Das sollte doch theoretisch auch 
ohne angeschlossenem Display funktionieren, oder?

Gruß, Lasse
Persönliche Seite #1224819
Lesenswert?

Hi,

richtig, es ist das LS020, sorry, hatte ich vergessen noch zu 
schreiben..

Die main.c fehlt.

Der SS-Pin wird so konfiguriert:
1
  DDRB |= (1<<PB0);
2
  PORTB |= (1<<PB0);

Die lcd_init wird auch aufgerufen, ich komme ja in die SPI_SEND_0 (kann 
dort per UART was schicken, was dann unendlich oft kommt, aber 
"dahinter" (also nach die SPIF-Schleife) kommt er nicht.

Wie kann es sein, dass das SPI nicht sendet? Ist mein SPE-Gewurschtel 
fehlerhaft?

Gruß, Lasse
Persönliche Seite #1224868
Lesenswert?

SPE braucht man nicht jedes mal setzen. Es reicht aus die Daten in SPDR 
zu kopieren. Dann wird die Übertragung automatisch gestartet.
Hast du mal nachgemessen, ob Daten rausgeschoben werden?

Warum benutzt du eigentlich abwechselnd in/out und lds/sts und was macht 
der original Code:
1
SPI_SEND:   
2
    out SPDR, r24       ;load byte in SPI data register
3
SPI_SEND_0: 
4
    sbis SPSR, SPIF
5
    rjmp SPI_SEND_0     ;transmitt byte to LCD
6
    in r0, SPDR
7
    sbi PORTF, LCD_CS   ;deselect Display
8
    ret
#1239165
Lesenswert?

Hey!

Ich habe bereits das L2F50xxx Erfolgreich ansteuern können und konnte 
den Code eben auch ohne Fehler kompillieren. Da ich nun das LS020 
eingekauft habe musste ich umsteigen.

Ich wollte gerade den Code für das LS020 von SuperKranz kompilieren und 
es wirft sehr merkwürdige Fehler.

Meine Vorgehensweise:

- simple_display3.zip runtergeladen und entpackt
- AVR-Studio(v4.14 Build589) geöffnet und neues Projekt angelegt.
- AVR GCC, Häkchen bei "Create initial file" und "Create folder" 
deaktiviert und als Projektnamen "simple" gewählt. Als Location habe ich 
den Ordner gewählt wo die .c .h und .asm Dateien drin sind.
- Rechtsklick auf "Source Files" und "Header Files" Add Existing Files 
... nun sind alle c und h dateien in meinem projekt. Da ich die orginal 
Makefile nutzen will stelle ich dies unter Projekt -> configuration ein.

Wähle ich nun "Rebuild All" kommen folgende Fehlermeldung:
1
makefile:339: simple.d: No such file or directory
2
makefile:339: disp.d: No such file or directory

Diese beiden Dateien exsistieren jedoch in meinem Projektordner.

In der Makefile in Zeile 339 steht:
1
include $(SRC:.c=.d)

Dann kam mir die Idee die asm-Datei auch über Rechtsklick -> Source 
Files einzubinden, jedoch kommt da genau die gleiche Fehlermeldung. :(


Hat jemand von euch eine Idee was ich falsch mache oder woran es liegen 
kann?

Ich habe schon fast die Vermutung dass die Version von AVR Studio zu 
aktuell ist? Oder mache ich mit der Asemblerdatei einen Fehler?


Gruß

Dominik
Gast #1240428
Lesenswert?

versuch mal direct von der "Kommandoaufforderung" (ich glaube so heisst 
das unter windows) man gibt cmd unter Ausführen ein zu kompilieren.

Also zum Pfad gehen wo das makefile ist und dort dann

make

eingeben. U.u. wenn es nicht geht mal ein make clear machen.

Wenn es so geht, liegt es an der Konfiguration deines AVR Studios.
Gast #1256822
Lesenswert?

Nun will ich auch mal zeigen, was ich fabriziert habe.
Vielen Dank an Christian Kranz, der dieses Projekt erst möglich gemacht 
hat.
Meine Schaltung basiert auf seinem Beispielcode und wurde vom mir (um 
einiges) erweitert. Dieses Programm ist gut, um sich in die Materie 
einzuarbeiten. Ich bin noch nicht am Ende, es soll noch einiges 
dazukommen; soll mal ein Oszi im Sinne von Ucompozzel (mal googeln, ist 
ziemlich genial) werden.
Prozessor AtMega64 SMD 5V, Display L2F50xx von Epson mit LM317 an 3,0V.
Die Versorgung der LED's erfolgt über einen MAX202(SMD) mit dem Abgriff 
an +10 und -10Volt; die Spannung bricht auf etwa 14V ein, hält 
aber.(Vorwiderstand von 420 Ohm) Den Stromverbrauch habe ich noch nicht 
gemessen, da das ganze Ding am Netzteil läuft.
Ich wünsche allen, die ihr Display noch nicht am laufen haben,
viel Erfolg; Dass mein Display läuft habe ich dieser tollen Community zu 
verdanken.
Angehängte Dateien:
#1258587
Lesenswert?

Hey!

Ich habs jetzt hinbekommen ... die Fehlermeldung kommt zwar immer noch 
aber die hex datei funktioniert :)

Nun wollte ich dir Library einbauen und bin die install.txt 
durchgegangen. Da ist dann die rede von einer compile.bat, die aber 
nicht existiert. Was kann ich da machen? Ich habe mir die Lib von 
http://www.superkranz.de/christian/S65_Display/DisplayIndex.html 
runtergeladen.
Bin mir auch garnicht sicher wie das mit der Lib funktionieren soll. 
Wird dann nur das mit Compiliert, was auch gebraucht wird?
Weiß da jemand was?

Gruß
Dominik
Gast #1262192
Lesenswert?

Hi Alle!

(falls offensichtlich, bitte ignorieren)

Warum schliessen alle diese komischen Spannungsteiler
zwichen Atmel IO und dem Display an??? Eine "open drain
without pullup" Konfiguration mit einem externen Pullup
von ein paar kOhm an die kleinere (vom Display) VDD
muesste doch haushoch ueberlegen sein (und ohne jegliche
Bedenken funktionieren).

Wenn man die IOs mit "open drain mit pull-up", ohne externe
Elemente konfiguriert, duerfte es auch funktionieren. Es
waehre zwar nicht mehr 100% elektrisch korrekt, der moegliche
Strom aber, der durch die internen Pull-ups und die
Sicherheitsdiode im Display laeuft duerfte dann hoechstens
ein paar uA betragen. Stimmt es?

Zu LS020: Laut der, oben im Thread verlinkten, Spezifikation
ist das Pin 8 am Display (VDD2 bzw. VDD_1.8V) "not connected".
Hat irgendjemand versucht das Pin gar nicht zu verschalten?
#1266866
Lesenswert?

Gast schrieb:
> Zu LS020: Laut der, oben im Thread verlinkten, Spezifikation
> ist das Pin 8 am Display (VDD2 bzw. VDD_1.8V) "not connected".
> Hat irgendjemand versucht das Pin gar nicht zu verschalten?

Ja, in der Testschaltung habe ich 1V8 mit an den 2.9V hängen. Wenn ich 
1V8 nicht mit 2.9V versorge funktioniert das Display zwar allerdings 
lässt der Kontrast nach bzw. wird das Bild schlechter und es fängt an zu 
flackern beim beschreiben.

Mfg,
Peter
Gast #1267199
Lesenswert?

Hallo Forum!

Ich habe die glcd-lib von superkranz mal kompiliert und stoße auf 
folgende Probleme:

"make.exe" all
makefile:335: test.d: No such file or directory

--> in Zeile 335 des Makefiles steht: include $(SRC:.c=.d)
Die Zeile kann ich doch knicken oder?

Compiling: test.c
test.c:10: warning: no previous prototype for 'testLines'
test.c:33: warning: no previous prototype for 'testLines2'
test.c:45: warning: no previous prototype for 'testEllipses'
test.c:87: warning: no previous prototype for 'testEllipses2'
test.c:99: warning: no previous prototype for 'testRects'
test.c:120: warning: no previous prototype for 'glcdRotateRect'
test.c:190: warning: no previous prototype for 'glcdNewOrientation'
test.c:197: warning: no previous prototype for 'testSymbols'
test.c:223: warning: no previous prototype for 'glcdPrintCenter'
test.c:233: warning: no previous prototype for 'myRead'
test.c:238: warning: no previous prototype for 'demoScreen'
test.c:339: warning: no previous prototype for 'testOrientation'
test.c:390: warning: no previous prototype for 'testBitmaps'
test.c:411: warning: no previous prototype for 'glcdRandomClipRect'
test.c: In function 'main':
test.c:429: warning: unused variable 'o'

Die fehlenden Prototypen meckert er an.
Das ist doch aber alles da oder?

Danke für Euren Tip
Gast #1294540
Lesenswert?

Hallo. Ich habe den Treiber für lph88 unter linux geschrieben
http://www.at91.com/samphpbb/viewtopic.php?f=12&t=18204
aber ich habe ein Problem - lcd nicht immer startet richtig. Die Code 
der Initialisierung:
<c>
#define SPI_SPEED   (12*1000*1000)

static u8 lcd_init_data[] __initdata = {0x74,0x00,0x00,0x76,0x00,0x01,
..... und weiter von Superkranz

static int __init lcd_init(struct lph88fb_par *par)
{
   int i;
   u8 *tx_buf = par->fb_virt;
   dma_addr_t tx_dma = par->fb_phys;

   /* reset lcd controller */
   at91_set_gpio_output(AT91_PIN_PB4, 0);
   mdelay(1);
   at91_set_gpio_value(AT91_PIN_PB4, 1);
   mdelay(10);

   memcpy(tx_buf, lcd_init_data, sizeof(lcd_init_data));

   for(i = 0; i < sizeof(lcd_init_data); i += 3) {
      spi_send_poll(par, tx_dma + i, 3);
      mdelay(1);
      if(tx_buf[i] == 0x76)
         switch(tx_buf[i-1]) {
         /* power control - need big delay */
            case 0x03:
            case 0x04:
            case 0x0c:
            case 0x0d:
            case 0x0e:
               mdelay(40);
         }
   }

   mdelay(100);

   return 0;
}
</c>

Was ich falsch mache? Danke.
Gast #1335302
Lesenswert?

Hi,

ich betreibe das LS020 an einem Mega644 mit 16MHz.

Ausgaben auf dem Display funktionieren soweit auch ganz gut,
zumindest für feststehende Ausgaben. Nun möchte ich den Inhalt
einer Variablen hochzählen und zur Anzeige bringen. Die Anzeige
aktualisiert sich aber nicht richtig, denn alte Werte bleiben
auf der Anzeige stehen und werden von neuen Werten überschrieben,
so dass irgendwann nur noch ein Balken zu sehen ist. Habe schon die Fkt.
LCD_ClrScr() bzw. S65_refresh() ausprobiert, bringen aber nichts.

Wer kann mir einen Tipp für folgenden Quelltextauszug geben?

1
void display_init(void)
2
{
3
   _delay_ms(10);
4
   S65_Init();
5
   _delay_ms(10);
6
   S65_Fillscreen(0x0000);
7
   S65_SetFont(&f12x12[0]);
8
   S65_SetTextColor(0xFFFF);
9
   S65_SetTextTyp(0);
10
   S65_SetFNull(0);
11
}
12

13
void S65_PutInt(uint8_t x, uint8_t y, uint16_t z)
14
{
15
   uint8_t counter = 0;
16
   uint8_t za[20];   
17
   za[6] = 0;
18
   za[5] = (z % 10)+48;z = z/10;
19
   za[4] = (z % 10)+48;z = z/10;
20
   za[3] = (z % 10)+48;z = z/10;
21
   za[2] = (z % 10)+48;z = z/10;
22
   za[1] = (z % 10)+48;z = z/10;
23
   za[0] = (z)+48;
24
   
25
   if(!FNull)              
26
   {
27
      while(za[counter] == 48){counter++;}
28
   }
29
   S65_PutStr(x, y, &za[counter]);
30
}
31

32
void S65_refresh()
33
{
34
   S65_wrcmd16(0xEF90);
35
   S65_wrcmd16(0x0000);
36
}
37

38
void LCD_ClrScr(void)
39
{
40
   uint16_t cnt;
41
   S65_wrcmd16(0xEF90);
42
   S65_wrcmd16(0x0500);
43
   S65_wrcmd16(0x0600);
44
   S65_wrcmd16(0x0700);
45
   for(cnt=0;cnt<(132*176);cnt++)
46
   {
47
      LCD_WrData(0x00);
48
      LCD_WrData(0x00);
49
   }
50
}
51

52
void main(void)
53
{
54
   uint16_t val = 0;
55
   display_init();  
56

57
   while(1)
58
   {
59
      if(val == 0xFFFF) val = 0; 
60
      S65_PutInt(66, 66, val++); 
61
      //LCD_ClrScr();
62
      //S65_refresh();
63
      _delay_ms(1000);
64
   }
65
}

Danke + Gruß
Richard
Gast #1340782
Lesenswert?

Hallo,

ich habe das  "simple_display3" mit nem Mega16L und 8Mhz ausprobiert.
Im prinzip scheint es zu funktionieren, jedoch erhalte ich anstelle 
"Hello World" nur menrkwürdige zeichen in der Display mitte.

wenn ich jedoch nur ein Zeichen ausgeben möchte z.B. 'H' dann wird 
dieses korrekt dargestellt. Hat jemand evtl. nen Tip für mich?

Danke!!
Gast #1343239
Lesenswert?

Hallo S56Besitzer,

was war die lösung deines Problems ?




Hallo Forum!

Ich habe die glcd-lib von superkranz mal kompiliert und stoße auf
folgende Probleme:

"make.exe" all
makefile:335: test.d: No such file or directory

--> in Zeile 335 des Makefiles steht: include $(SRC:.c=.d)
Die Zeile kann ich doch knicken oder?

Compiling: test.c
test.c:10: warning: no previous prototype for 'testLines'
test.c:33: warning: no previous prototype for 'testLines2'
test.c:45: warning: no previous prototype for 'testEllipses'
test.c:87: warning: no previous prototype for 'testEllipses2'
test.c:99: warning: no previous prototype for 'testRects'
test.c:120: warning: no previous prototype for 'glcdRotateRect'
test.c:190: warning: no previous prototype for 'glcdNewOrientation'
test.c:197: warning: no previous prototype for 'testSymbols'
test.c:223: warning: no previous prototype for 'glcdPrintCenter'
test.c:233: warning: no previous prototype for 'myRead'
test.c:238: warning: no previous prototype for 'demoScreen'
test.c:339: warning: no previous prototype for 'testOrientation'
test.c:390: warning: no previous prototype for 'testBitmaps'
test.c:411: warning: no previous prototype for 'glcdRandomClipRect'
test.c: In function 'main':
test.c:429: warning: unused variable 'o'

Die fehlenden Prototypen meckert er an.
Das ist doch aber alles da oder?

Danke für Euren Tip
Gast #1372818
Lesenswert?

Hallo zusammmen,

ich habe erfolgreich die glcd-lib von christians seite mit einem ls020 
zum laufen bekommen.
tolle arbeit von euch!

leider funktioniert die rotation noch nicht. hat schon jemand die lib 
entsprechend erweitert, sodass man den text auch in 90° rotation 
anzeigen kann?

mfg, michael
#1382585
Lesenswert?

Hi zusammen,

habe mir auch mal so ein Display vom Typ LS020 in der Bucht bestellt. Da 
es heute eingetroffen ist, wollte ich versuchen zumindest schonmal die 
"Hello World" angezeigt zu bekommen.
Habe mir dazu von Christians Webside die aktuelle simple_display3 
geladen und entpackt. Wenn ich diese nun mit Rebuild All compilieren 
lassen, kommen folgende Meldungen:
Build started 20.8.2009 at 22:12:43
avr-gcc  -mmcu=attiny2313 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT disp.o -MF 
dep/disp.o.d  -c  ../disp.c
avr-gcc  -mmcu=attiny2313 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT simple.o 
-MF dep/simple.o.d  -c  ../simple.c
avr-gcc -mmcu=attiny2313 -Wl,-Map=S65_simple_Dispaly3.map disp.o 
simple.o     -o S65_simple_Dispaly3.elf
disp.o: In function `lcd_wrdat16':
C:\_Data\Projekte\_MoBa\AVRStudio\S65_simple_Dispaly3\default/../disp.c: 
128:  undefined reference to `lcd_wrdata'
C:\_Data\Projekte\_MoBa\AVRStudio\S65_simple_Dispaly3\default/../disp.c: 
129:  undefined reference to `lcd_wrdata'
disp.o: In function `lcd_wrcmd16':
C:\_Data\Projekte\_MoBa\AVRStudio\S65_simple_Dispaly3\default/../disp.c: 
122:  undefined reference to `lcd_wrcmd'
C:\_Data\Projekte\_MoBa\AVRStudio\S65_simple_Dispaly3\default/../disp.c: 
123:  undefined reference to `lcd_wrcmd'
simple.o: In function `main':
C:\_Data\Projekte\_MoBa\AVRStudio\S65_simple_Dispaly3\default/../simple. 
c:24:  undefined reference to `lcd_init'
make: *** [S65_simple_Dispaly3.elf] Error 1
Build failed with 5 errors and 0 warnings...

Leider kann ich die Funktion lcd_wrcmd auch nicht finden. Dafür ist die 
Funktion lcd_wrcmd16 gleich doppelt in der disp.c enthalten. Liegt hier 
vielleicht ein Fehler vor oder was mache ich falsch?

void lcd_wrcmd16(uint16_t dat)
{
  lcd_wrcmd((dat>>8));
  lcd_wrcmd(dat);
}

void lcd_wrdat16(uint16_t dat)
{
  lcd_wrdata(dat>>8);
  lcd_wrdata(dat);
}

Wenn ich zum testen den ATtiny nur mit 2,9Volt betreibe, dann kann ich 
das Display doch direkt an die Ausgänge anschließen - oder ?

Danke Euch

Torsten
Gast #1397054
Lesenswert?

Hallo Leute,

ich habe das LS020 schon erfolgreich mit dem kleinen Programm 
Simple-Display an meinem Mega32 betrieben. Jetzt würde ich gerne das mit 
s65_glcd_V01 versuchen, doch ich kriegs nicht auf die Reihe.
Ich benutze AVR Studio 4 und weiß nicht so recht wohin mit den Dateien 
(zB: *.asm, *.a, *.inc,...), hab schon Vieles versucht, doch ihm fehlen 
so gut wie alle Funktionen oder der Assembler findet keine Header 
Dateien, obwohl ich die schon included habe.
In der Installation Textdatei stehen auch andere Pfade.
Die Dateien (makefile, glcd) habe ich schon anpasst (MCU, Ports für 
Ausgabe, Quarz).
Es wäre echt super, wenn einer eine Anleitung oder sowas Ähnliches 
schreiben könnte, Schritt für Schritt oder Tipps geben könnte.

Ich freu mich schon drauf!!!
Slevin
Gast #1397785
Lesenswert?

Hi,

habs endlich doch noch hinbekommen!

Wenn ich es compiliere, dann kommt folgendes:

c:/programme/avrstudio/bin/../avr/include/util/delay.h:89:3: warning: 
#warning "Compiler optimizations disabled; functions from <util/delay.h> 
won't work as designed"
test.c:12: warning: no previous prototype for 'testLines'
test.c:35: warning: no previous prototype for 'testLines2'
test.c:47: warning: no previous prototype for 'testEllipses'
test.c:89: warning: no previous prototype for 'testEllipses2'
test.c:101: warning: no previous prototype for 'testRects'
test.c:122: warning: no previous prototype for 'glcdRotateRect'
test.c:192: warning: no previous prototype for 'glcdNewOrientation'
test.c:199: warning: no previous prototype for 'testSymbols'
test.c:225: warning: no previous prototype for 'glcdPrintCenter'
test.c:235: warning: no previous prototype for 'myRead'
test.c:241: warning: no previous prototype for 'demoScreen'
test.c:341: warning: no previous prototype for 'testOrientation'
test.c:392: warning: no previous prototype for 'testBitmaps'
test.c:413: warning: no previous prototype for 'glcdRandomClipRect'
test.c:424: warning: no previous prototype for 'pwma'
test.c: In function 'main':
test.c:457: warning: unused variable 'o'

Zwar funktioniert das Display so einwandfrei, doch mich interessiert es 
schon, was das für warnungen sind. Kann mir einer weiter helfen?

MfG
Slevin
#1410593
Lesenswert?

Habe nun endlich es hinbekommen, dass ich die Files, welche mit Hagens 
Font-Editor erstellt werden, in meinem Projekt verwenden kann. Die ganze 
Lib ist mir zu wuchtig, und außerdem müsste ich die größtenteils eh 
umschreiben, da ich in ASM programmiere.
Gestern habe ich dann mir die Windows-Updates von XP gezogen. Seit dem 
kann ich den Font-Editor noch aufrufen, jedoch wird im Bearbeitungsfeld 
wo normalerweise die kleinen Kästchen sind, nichts mehr angezeigt. Das 
Feld ist leer.

Habe mal einen Screenshot angehängt.

Hat einer eine Idee was ich tun kann? Im WorstCase muss ich versuchen 
herauszufinden, was das WindowsUpdate gestern installiert hat und dass 
dann wieder deinstallieren.

Danke & Gruß
Torsten
Angehängte Dateien:
Persönliche Seite #1427470
Lesenswert?

Hallo zusammen,

als erstes: Danke christian für deine Arbeit, echt toll von dir alles 
zur verfügung zu stellen.

Das Demo (grüner hintergrund mit Text) funktioniert bei mir wunderbar 
(LPH8826 und ATMega32 mit 8MHz), aber die Grafikroutinen nicht. Ich kann 
alles compilieren und so, aber das Display zeigt überhaupt nichts an.
Kann mir jemand einen Tip geben was man machen muss, damit man etwas 
sieht? Die Pinbelegung stimmt, habs mehrfach kontrolliert.

Da fällt mir ein: In der main in test.c ist display on auskommentiert. 
Wird das Display irgendwo anders eingeschaltet?

Michael
Persönliche Seite #1427532
Lesenswert?

ok, es lag nicht am auskommentierten.

Stattdessen hab ich mal das hier probiert (in C bin ich fitter als in 
asm):
1
draw_fill_rect(20,20,30,20,0x0F00);
2

3
void draw_fill_rect(unsigned char x, unsigned char y, unsigned char width, unsigned char height, unsigned int color)  {
4

5
  int i = width * height;
6
  i--;
7

8
  // PORTB &= ~_BV(LCD_CS);  // select display
9

10
  lcd_comtype(0x05);
11
  lcd_comdat(0x00,0x30);
12
  lcd_comtype(0x16);
13
  lcd_comdat(x + width, x);
14
  lcd_comtype(0x17);
15
  lcd_comdat(y + height, y);
16
  lcd_comtype(0x21);
17
  lcd_comdat(y, x);
18
  lcd_comtype(0x22);
19
  lcd_write(0x76);
20

21

22
  while (i)  {
23
    lcd_write16(color);
24
  }
25

26
  // PORTB |= _BV(LCD_CS);  // deselect display
27

28
  return;
29
}

Die erste Zeile ist der Aufruf der Funktion (steht in main drinne). Das 
Rechteck wird korrekt bezeichnet, danach geht aber nichts mehr (vorher 
wird Bildschirm gefüllt, natürlich mit einer anderen Farbe, das geht, 
aber alles was danach kommt tut nichtmehr. Ich bin mir sicher, dass 
einfach nur ein Befehl fehlt, weiß aber nicht welcher. Oder ich fülle 
den GRAM in angegebenen Bereich zu wenig oder zu viel, ich weiß nicht, 
wieviel es genau sein muss.

Michael
#1465732
Lesenswert?

Ich muss mich hier nun nochmal melden. Irgendwie komme ich leider nicht 
weiter.
Die Lib habe ich derweilen nun erfolgreich in mein C-Projekt in Ecplise 
eingebunden. Textausgaben sind auch ohne Probleme mit folgendem Aufruf 
möglich:
1
glcdSetFgColor(RGB(0xff,0xff,0xff));
2
glcdMoveTo (LCD_TIME_X - VIS_font_WIDTH - 2, LCD_TIME_Y);
3
glcdPrint(icon_DCF,0);

Der Text wird so natürlich nur in der Farbe ausgegeben, die ich vorher 
angegeben haben.

Doch wie geben ich denn ein buntes Zeichen aus? So wie zB in der 
clock20x37

Und wo finde ich die glcd_Colors[]? Wenn ich die Farben im Font-Editor 
angepasst habe, muss ich diese doch auch irgendwie meinem Projekt 
mitteilen - oder?

Möchte gerne einfache farbige Symbole über das Font-Tool erstellen und 
dann auf dem Display ausgeben. Doch irgendwie scheitere ich daran.

Vielleicht mache ich den Fehler ja schon beim einbinden der Schriftart:
1
#include "font/VIS_font.h"

Hoffe ihr könnt mir helfen.

Danke
Torsten
Gast #1474880
Lesenswert?

Hallo zusammen,

erstmal vielen Dank an euch alle für die tollen Infos, ohne euch wäre 
ich nicht so weit gekommen. Mein spezieller Dank an Christian K. für die 
super Hardwareinfos und an Ben a.k.a. Lightning für das tolle PDF.

Zum Wesentlichen:
Nachdem ich keinen simplen Arduino Sketch / Code ohne externe Librarys 
gefunden habe, um mein LS020 Display zu testen, habe ich selbst einen 
geschrieben (nur Initialisierung als reiner Hardwaretest). Vielleicht 
hilft das hier jemandem.

Zu finden hier:
http://tinylogic.blogspot.com/2009/11/siemens-s65-tft-part-2-its-working.html

Der Post ist zwar auf Englisch, aber der Code ist selbsterklärend, wenn 
man hier den Thread gelesen hat. (Fragen, Probleme, etc zum Sketch bitte 
im Blog in die Comments, dort bin ich häufiger aktiv als hier. Auch gern 
auf Deutsch.)

Nebenbei:
@Andreas Watterott: Unter welcher Lizenz stehen eigenlich eure Libs, 
speziell die im S65 Shield Project? Ich habe da diverse Änderungen, die 
ich bei geignetem Reifegrad gerne der Community zu Verfügung stellen 
möchte.

Schöne Grüße,
cun83
#1537293
Lesenswert?

Hi Julian,

ich weiß zwar nicht, welchen Regler Du als IC2 und IC3 verwendest, 
scheint aber sonst zu passen.
Ich habe bei mir sogar nur eine Regelung auf 3.3V drin und diesen dann 
an den 1.8V und 2.9V Eingang abgeschlossen. Das läuft bei mir super.

Dir auch einen guten Rutsch.

Gruß
Torsten
Persönliche Seite #1538763
Lesenswert?

> Jedoch wollte ich mal Fragen, wie ich ein einzelnes Pixel setzten kann.
> Hab schon stundenlang rumprobiert, hat aber leider nie funktioniert :(
Bereich (column, page) setzen und Pixel malen:
http://code.google.com/p/arm-webradio/source/browse/trunk/src/lcd/lcd_l2f50.c

Was mich interessieren würde, ob schon jemand eine Möglichkeit gefunden 
hat das L2F50 um 90 Grad zu drehen (Landscape-Mode). Scheinbar ist nur 
eine Drehung um 180 Grad möglich.
#1543727
Lesenswert?

Hallo Zusammen,

erst mal ein Gutes Neues !

Ich hab mich ein wenig "verschluckt". Ich hab mir ein S65 Displays 
besorgt (LS020 gebraucht) -> und bekomm das Ding einfach nicht zum 
laufen.
Das Ganze ist dadurch erschwert, dass ich einen Mega88 verwende und ich 
hier (offensichtlich) nicht alles 1:1 übernehmen kann (Register...).

Ich will euch nicht damit belästigen, meine ganzen "Anfängerprobleme" 
durchzukauen, sondern bitte nur darum mir eines hex File zukommen zu 
lassen das ich auf dem Mega88 laufen lassen kann um festzustellen, ob 
das Display überhaupt funktioniert und ob meine Verkabelung IO ist.
(mir genügt es wenn das Ding "Hallo NEWBIE" ausgibt :-) )
Durch den Rest qäle ich mich dann durch.

Mein Aufbau:  Atmega88 (8MHz intern), Display: LS020XXX
Pins:
  #define   LCD_CS      PB2
  #define   LCD_RESET   PB6
  #define   LCD_RS      PB7
  #define   LCD_MOSI    PB3
  #define   LCD_MISO    PB4
  #define   LCD_SCK     PB5

würde mich freuen wenn mir jemand helfen könnte.

Meine Mail:  S_Andreas_'ät'hotmail.com

DANKE !
Gast #1571024
Lesenswert?

Hallo.

Ich habe mir auch ein schickes S65-Display zugelegt. Funktioniert auch 
mit der Ansteuerung und allem. Ich verwende die GLCDv01.

Nun frage ich mich, wie ich Bitmaps damit darstellen kann. Ich habe 
meine bmp's mit einigen der hier im Thread vorgestellten Konvertern in 
*.h Files konvertiert. Nun sind das ja jeweils 2 Byte pro Pixel.

Ich weiß nun nicht, wie ich die Farbinformationen an das Display 
übertrage.

Ich habs versucht mit glcdSetPixel(x,y,color) und mit glcdDisplayData().

Wie kann ich die 2 Byte in die Farbe eines Pixels für glcdSetPixel() 
umwandeln?

Wie sende ich das Bitmap als Puffer? Das Display muss den Datenstrom ja 
interpretieren können.

Ich habe leider keine Infos zum Umgang mit den Farben in der 
Dokumentation gefunden.

Grüße
S65_User
Gast #1573867
Lesenswert?

Re

Kann mir wirklich niemand kurz erklären, wie das mit den Farben in der 
glcd funktioniert? Oder zumindest einen Hinweis oder Link geben, 
vielleicht gibts dazu ja schon einen Thread oder sowas.

S65_User
Gast #1573954
Lesenswert?

Hallo Guntmar,

Vielen Dank erstmal für die Info. Jetzt hab ich aber trotzdem noch ein 
paar Fragen:

Wenn ich zum Beispiel aus deiner Bibliothek die Funktion 
S65_PutRawBmp16() nehme:

- Das Display weiß dann, dass es jeweils 2 gesendete Bytes als ein Pixel 
interpretieren muss?
- Muss man vorher den Platz auf dem Display allokieren?

- Woher weiß das Display, welche Farbe es welchem Wert zurordnen muss? 
Es muss ja dann irgendwie ne Farbtabelle geben, wo das Display weiß: 
"dieser 16-Bit-Wert entspricht genau dieser Farbe". Genauso im 
8-Bit-Modus. Welche Farbtabelle ist dort hinterlegt?


Grüße,
S65_User
Gast #1574037
Lesenswert?

Hallo Torsten,

Danke für den Link. Ist wirklich sehr informativ. Besonders was die 
Darstellung von Fonts in unterschiedlichen Farben angeht.

In dem Thread ist die Rede von einer DrawBitmap-Funktion. Die gibts aber 
in der glcd-Lib (V01), die ich von superkranz.de habe leider nicht :-(

Gibts ne aktuellere Version davon?

Grüße,
S65_User
#1583761
Lesenswert?

S65_User schrieb:
> In dem Thread ist die Rede von einer DrawBitmap-Funktion. Die gibts aber
> in der glcd-Lib (V01), die ich von superkranz.de habe leider nicht :-(
>
> Gibts ne aktuellere Version davon?

Hi S65_User,

habe mal nachgeschaut und konnt so auf Anhieb auch nichts in der GLCD v1 
finden. Ob es eine neuere Version davon gibt, kann vermutlich am besten 
Hagen beantworten.

Gruß
Torsten
Gast #1584133
Lesenswert?

Ja gibt es. Ich habe diese GLCD mit dem Nokia6100 in zwei Versionen 
begonnen und sie dann nochmals neu portiert für das S65 LPHxxx Display. 
Christian dagegen hat die alte Nokia Lib von mir für das S65 portiert. 
Beide Libs sehen sich sehr aähnlich was die Funktionsnamen, Parameter 
und Features betrifft sind aber auch teilweise sehr unterschiedlich. 
Meine S65 Lib hat zb. neue features wie Bitamps/Icons zeichnen die mit 4 
unterschiedlichen Verfahren komprimiert im Speicher liegen. Desweiteren 
enthält sie die Funktion glcdRoundRect() mit der man vom Rechteck über 
abgerundete rechtecke und Tonnen bishin zu Ellipsen und Kreise zeichnen 
kann. Das sind die wesentlichen Unterschiede. Ganz neu in der S65 Lib 
ist ein sehr flexibels und schon fertiges Menusystem das im FLASH seine 
Struktur hinterlegt bekommt, vielfarbig, scrollbar und dynamiscerbar 
ist.

Der größte Unterschied ist aber das ich die S65 Lib nicht frei 
veröffentlicht habe. Man muß sich bei mir per PN melden und kann sie 
dann per EMail bekommen. Übrigens haben schon ziemlich viele leute hier 
dieses Angebot wahrgenommen.

Gruß hagen
Persönliche Seite #1591145
Lesenswert?

Hallo euch allen, das ist ja ne echt starke leistung, was hier alle 
vollbracht haben.
leider bekomme ich keine der Displays mit den Programmen zum laufen.

Ich suche eine Software für die Displays.
       Nokia 6100   leider die EPSON version
       S65
       Nokia 3310

       mit ATmega128

Nutzen möchte ich diese mit dem aktuellen WinAVR und einem ATmega128
kann mir jemand einen brauchbaren CODE zusenden?

Vielen DANK
martin
#1622263
Lesenswert?

Lasse S. schrieb:
> Und: Gibt es Display noch irgendwo zu kaufen? Bei Watterott habe ich es
> nicht mehr gefunden?

Hi Lasse,

Wattenrott stellt ja noch immer den Shop um. Ich schätze mal, dass sie 
die Displays wieder reinbekommen.

Ansonsten schaue mal in der Bucht nach:
http://shop.ebay.de/i.html?_nkw=s65+display

Bzgl der 2 Displays, schätze ich mal das das mit einer zusätzlichen CS 
geht. Bei der Aussage lasse ich aber die Experten vor :)

Gruß
Torsten
Persönliche Seite #1622464
Lesenswert?

Danke schonmal für die Antworten.

Beruhigend, dass ihr die wieder bekommt, Andreas :)

Danke für den Link zum SPI, das war mir durchaus bewusst. Leider nutzt 
das Display ja zusätzlich noch Reset und RS. Meine Frage zielt daher 
darauf, ob ich Reset und RS auch doppelt brauche, oder ob das mit dem CS 
reicht. (Es wäre in Ordnung für mich, wenn ich beide Displays nur 
gleichzeitig resetten kann, beide Displays sind stets gemeinsam in 
Verwendung)


Warum ich zwei Displays brauche (weil hier ja häufig sinnvoller Weise 
auch nach den tieferen Beweggründen gefragt wird): Die Anzeigefläche 
eines Displays ist mir zu wenig, und ich finde kein leicht ansteuerbares 
größeres Display, welches bezahlbar ist.

Gruß
Lasse
Persönliche Seite #1622635
Lesenswert?

Das mit dem gleichzeitigen Reset/Init müsste eigentlich gehen.

> Warum ich zwei Displays brauche (weil hier ja häufig sinnvoller Weise
> auch nach den tieferen Beweggründen gefragt wird): Die Anzeigefläche
> eines Displays ist mir zu wenig, und ich finde kein leicht ansteuerbares
> größeres Display, welches bezahlbar ist.

Da die S65-LCDs nicht mehr produziert werden, sind wir auch auf der 
Suche nach einer Alternative. Wahrscheinlich werden wir 2,8" 240x320 
Displays (mit SPI, 8bit und 16bit Interface) von Multi-Inno mit in den 
Shop aufnehmen.

Gruß
Andreas
#1634196
Lesenswert?

Hallo
ich habe leider oben im Beitrag nur recht wenige Informationen zu meinem 
Display gefunden. Optisch sieht es wie ein LS020... aus aber die genaue 
Bezeichnung ist LQ020..., aus einem S65 Handy ausgebaut. Ich habe ein 
Video oben gefunden wo jemand anscheinend dieses Display erfolgreich 
benutzt. Ist es es von der Ansteuerung dem LS020 identisch? Gibt es 
irgendwelche Besonderheiten zu beachten? Kann das Display leider 
momentan nicht selber testen. Vielen Dank.
Angehängte Dateien:
Gast #1637934
Lesenswert?

Hallo,

mein LPH Display an einem XMega macht manchmal Probleme.
Die Spannungsversorgung beträgt 3,3V.
Verwendet wird Hardware-SPI mit 16MHz. Testweise wurde auch 8MHz, 4MHz 
und 2MHz probiert. Das verhalten ändert sich hierbei nicht (abgesehen 
von der Geschwindigkeit des Bildaufbaus natürlich).

Es kommt immer mal wieder vor, dass das Display "schlieren" zieht; es 
wird zwar alles angezeigt, jedoch ist wie ein ein Grauschleier 
schattenhaft alles mehrfach zu sehen.
Das ist meist wenn ich die Schaltung ein paar Stunden vom Strom getrennt 
habe wieder weg gewesen, jetzt ist es jedoch auch direkt -nach einem 
halben Tag ohne Strom- sofort wieder fehlerhaft gewesen.

Kann das daran liegen, dass ich des öfteren keinen Reset des Displays 
vor dem Ausschalten gemacht habe?

Grüße Uli

PS: Ich habe vage in Erinnerung, dass ich das Problem schonmal hatte, 
und da irgendwas mit der Slave-Select-Line war. Irgendwas mit zu langsam 
oder zu schnell oder so, aber da bin ich mir nicht sicher und durch 
rumprobieren hab ichs net besser hinbekommen als so fehlerhaft mit 
Schlieren
Oder war es irgendwas mit der Spannungsversorgung, dass die Spannung 
noch nicht sauber genug war? :-/ Ich hab jedenfalls testweise auch 
bereits delays von bis zu 1s eigenstellt vor dem Iniitialisieren des 
Displays und danach vor dem ersten beschreiben, aber das hat auch nicht 
geholfen
Gast #1646582
Lesenswert?

Dear Hagen Reddmann!
Thank you very much for great font editor (font.exe) and picture 
converter (convert.exe) program!
They are very useful for me.

Now I`am changed the display to one with the resolution of 320x240 
pixels, but the picture converting utility does not allow me to work 
with this new resolution properly because of its restriction of 176x132 
pixels maximum :(

Would you be so kind to change this restriction to 320 x 240 pixels 
instead?

Thanks in advance :)
Gast #1649591
Lesenswert?

Hagen schrieb:
> here is it, regards Hagen

There is a bug in the modified converter - saved image (436 x 249 
original, must be 320 x 182 after conversion) has wrong "width" 
parameter (in the header) - 64 (instead of 320)...

.png images are not supported anymore?
Gast #1650316
Lesenswert?

- .png again supported
- bug removed

Please remember needed changes in binary data format. First both bytes, 
wich are width and height in the old format, must be changed to word, 
eg. two bytes per value. This is important if you use my compessed data 
format and export into header files.
Next two weeks i'm on tour, thus you have to wait some time for a 
answer.

Regards, Hagen
Angehängte Dateien:
Gast #1654695
Lesenswert?

Hagen schrieb:
> - .png again supported
> - bug removed

Thanks, it seems now all works fine!

Just one last thing - your old converter has the "info text" - a text 
lines below each picture window with its bit depth and resolution 
information.
This text disappears in the new version.

Possibly, the text is still in place, just being hidden below oversized 
"picture windows"?
Gast #1752573
Lesenswert?

marcel du solltest definitiv an der genauigkeit deiner Texte arbeiten !

du kannst das dieplay mit nem atmel mega88 ansteuern, ja, allerdings ist 
der schon arg klein, große sprünge werden die nicht möglich sein

(ich weis dass ich an meiner rechtschreibung arbeiten könnte, ja....)
Gast #1798208
Lesenswert?

Habe gerade voller Hoffnung mein Paket von Ebay aufgemacht und was 
musste ich feststellen, anstelle der versprochenen Modellreihe P03 habe 
ich P00 bekommen.

Weiß einer von euch ob diese beiden Modellserien den selben Controller 
benutzen ? ;)


Vielen Lieben Dank

Stefan Hibuk
#1819407
Lesenswert?

Auch wenn es ggf nicht ganz hier hingehört:
Da das LS020... zwischenzeitlich nicht zu bekommen war - jetzt gibt es 
das wohl wieder in der Bucht -, was wäre eine Alternative?
Starte gerade mit einem neuen Projekt und da dann auf ein totes Pferd 
setzen ist auch nicht die beste Wahl.

Gibt es ein Display, das eine Alternative zum LS020... darstellt?

Danke,
Torsten
Persönliche Seite #1819736
Lesenswert?

Marcel Heier schrieb:
> Hat den jemand mal ein schaltplan und ein programm.
> Das am ende ein Display mit ein eingang für die kamera rauskommt.

Ich glaube, du unterschätzt da etwas den Aufwand einer solchen 
Schaltung, das ist nicht gerade eine 0815-Standard-Schaltung, sondern 
eher was anspruchsvolleres...

Also falls einer sowas haben sollte, dann hab ich morgen einen 6er im 
Lotto^^
Gast #1829616
Lesenswert?

Hallo an Alle hier in diesem Forum,
erst mal möchte ich danke für die tolle glcdLib sagen.

kann es sein das ich etwas falsch gemacht habe, oder habe ich ein 
kleinen Fehler entdeckt?
Ich hoffe das ich keine Diskussion dazu übersehen habe.
Habe das LS020 an einem atmega128. mir ist aufgefallen, das scheinbar 
die erste zeile und die erste spalte des display nicht benutzt werden 
wenn mann ein glcdRect definiert oder den Screen löscht.
ich hänge hier mal die test.c mit dran so sieht man schön was ich meine.
1
#include <inttypes.h>
2
#include "../glcd/glcd.h"
3
#include "../glcd/lfsr.h"
4
#include "../font/mein.h"
5
#include "../font/mein1.h"
6
#include "../font/f9x14.h"
7
#include "../font/f15x22.h"
8
#include "../font/f8x11.h"
9

10
void glcdPrintCenter(glcdRect_t r, char *text, uint8_t InFlashStored){
11
  r.X1 += (r.X2 - r.X1 - glcdCharsWidth(text,InFlashStored)) / 2;
12
  r.Y1 += (r.Y2 - r.Y1 - glcd_FontHeight) / 2;
13
  glcdMoveTo(r.X1, r.Y1);
14
  glcdPrint(text, InFlashStored);
15
}
16

17
void demoScreen(void)
18
{
19
 glcdRect_t r; 
20
 glcdSetBkColor(BLUE);
21
 glcdRectangle(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
22
 glcdSetFgColor(MAGENTA);
23
 glcdLine(0,0,0,50);
24
 glcdLine(0,0,50,0);
25
 
26
}
27

28
int main(void) {
29
#define cnt 1
30

31
#ifndef USE_AUTOINIT
32
    glcdDisplayInit();
33
#endif
34

35
    glcdClearScreen(1);
36
//    glcdDisplayOn();
37

38
    demoScreen();
39

40
    while (1) {
41
    }
42
}

mfg der klabusterbaer
Gast #1843798
Lesenswert?

hallo, i want datasheet for my LCD L2F50126. I want to use it in my 
software with PIC uC. I see some documents, but nowhere i find 
information about this type of display. You can write email to me...in 
future if i start writing program for display i will be have some 
questions. Thanks in advance.
Gast #1883027
Lesenswert?

Hallo!

Erstmal danke an alle für dieses Forum, damit habe auch ich
das LS020 zum laufen gebracht...
aber hat denn noch jemand eine Bezugsquelle für das Display?
Ebay und diverse Shops sind scheinbar leergekauft.

MfG,
Matthias
#1883199
Lesenswert?

Matthias schrieb:
> Hallo!
>
> Erstmal danke an alle für dieses Forum, damit habe auch ich
> das LS020 zum laufen gebracht...
> aber hat denn noch jemand eine Bezugsquelle für das Display?
> Ebay und diverse Shops sind scheinbar leergekauft.

hatte ich hier >> 
Beitrag "Re: The Siemens S65 132x176, 65536 color display with AVR"
auch schon mal gefragt.

Bin derzeit auf der Suche nach einer preislichen Alternative. Glaube das 
MI0283ST könnte eine Alternative sein. Habe es aber noch nirgendwo 
bestellbar gesehen.

Grüße,
Torsten
Gast #1968847
Lesenswert?

Font editor generates invalid *. h-file. Imports of Cyrillic fonts is 
successful in the editor, but the output to the display of Cyrillic 
characters do not work: only empty squares pechatyutsya!
Why?
P.S. Sorry for my English (Google-translate)
#2055518
Lesenswert?

Matthias Laubnitz schrieb:
> und schon was gefunden?

Das MI0283ST liegt nun hier schon eine Weile rum - komme im Moment 
einfach nicht dazu. Mal sehen wann ich die Zeit dazu finde. Brauche 
allerdings auch noch eine Bezugsquelle für die passende Buchsenleiste. 
Ggf würde ich im ersten Step dazu auf das Board von Watterott 
zurückgreifen.
>> 
http://www.watterott.com/de/MI0283QT-2-Adapter-without-LCD?xe5e2d=g23ri7m3hbc2tucoahffbsgos2

Ist im Moment aber auch nicht zu bekommen :)
Persönliche Seite #2573581
Lesenswert?

Ich habe ein merkwürdiges Problem mit einem LPH88xx-Display.

Es funktioniert halbwegs, ich kann Texte, einzelne Pixel setzen usw.

Das Problem ist, dass der Kontrast sehr schlecht ist. Sobald ich das 
Display initialisiere, aber mit keiner Farbe Fülle, wird das komplette 
Display Dunkelgrau bis Schwarz über ca. 1-2 Sekunden immer dunkler.

Egal, mit welcher Farbe ich fülle, es wird immer dunkelgrau-schwarz.

Wenn ich es gar nicht initialisiere und auch sonst nichts mache, nur 
Power, dann zeigt es mir random-Pixel über das gesamte Display an.

Hat das schonmal jemand gesehen und weiss wo der Fehler liegt? Das 
Display funktioniert 1A, wenn ich es zurück in mein S65 stecke.
#2735983
Lesenswert?

Falls es noch jemanden interessiert, ich habe mal mit einem LA die 
Endsequenzen bei einem M65 mit LS020 aufgenommen:
1
-488,142 ms  0xef00
2
-488,132 ms  0x7e04
3
  
4
-428,632 ms  0xefb0
5
-428,623 ms  0x5a48
6
-428,614 ms  0xef00
7
-428,605 ms  0x7f01
8
  
9
-368,655 ms  0xefb0
10
-368,645 ms  0x64ff
11
-368,636 ms  0x6500
12
-368,628 ms  0xef00
13
-368,619 ms  0x7f01
14
  
15
-308,660 ms  0xe262
16
  
17
-216,353 ms  0xe202
18
  
19
-156,353 ms  0xefb0
20
-156,344 ms  0xbc02
21
-156,335 ms  0xef00
22
-156,325 ms  0x7f01
23
  
24
-137,892 ms  0xe200
25
  
26
-119,433 ms  0x8000
27
-119,423 ms  0xe204
28
  
29
-100,970 ms  0xe200
30
  
31
-82,508 ms  0xe100
32
  
33
-64,046 ms  0xefb0
34
-64,037 ms  0xbc00
35
-64,028 ms  0xef00
36
-64,019 ms  0x7f01
37
  
38
-4,027 ms    /RESET → low
39
  
40
0,000 ms    Vdd → low

Dies ist komplett alles nach den letzten Daten.
Was davon wirklich zum Abschalten gehört habe ich noch nicht weiter 
untersucht.
Vielleicht kann es ja einer brauchen.
frank

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