mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GLCD T6963 Probleme mit Textdarstellung


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe den AVR 90S8535 an ein Display Toshiba TLX-1391 128x128
angeschlossen. Ich kann jedes Pixel ansprechen. Leider kann ich keinen
Text auf das Display darstellen lassen.
Hat jemand einen Plan was ich das tun muss?

Speicheraufbau vom Display:

//  0000H  +---------------+
//        | Graphic Ram  |
//  0DFFH | 3584 Bytes |
//  0E00H  +---------------+
//        | Attribute Ram |
//  0FFFH |   |
//  1000H  +---------------+
//        | Text Ram  |
//  1BFFH | 3072 Bytes |
//  1C00H +---------------+
//        | CG  Ram  |
//        | 1024 Bytes |
//  1FFFH +---------------+

C-Routinen:

void out(char commando,char dataa, char datab)
{
lcd_status();
pause();
rd = 1;
pause();
cd = 0;
pause();
PORTC = dataa;
pause();
wr = 0;
pause();
wr = 1;
pause();
PORTC = datab;
pause();
wr = 0;
pause();
wr = 1;
pause();
cd = 1;
pause();
PORTC = commando;
pause();
wr = 0;
pause();
wr = 1;
pause();
cd = 1;
pause();
}

void t6963cinit(void)
{
out(0x42, 0, 0);
out(0x43, 22, 0);
out(0x40, 0, 0x10);
out(0x41, 30, 0);
out(0x21, 0, 0x10);
out(0x24, 0, 0x10);

out(0x80, 0, 0);
out(0xA7, 0, 0);
out(0x90, 0, 0);
cls();
LCD_Clear_Text();
out(0x98, 0, 0);
}

void lcd_gotoxy(unsigned int x, unsigned int y) // Set Adresspointer
{
   unsigned int address;
   address = ((unsigned int)y * 30) + x + 0x1000;
   out(0x24,address & 0xff,address >> 8);
}

void lcd_write_string_xy(unsigned int x, unsigned int y, char *ptr)
// write String an pos x, y
{
  lcd_gotoxy(x,y); // set Adresspointer
  while (*ptr)
  {
    out(0xC0,(*ptr)-0x20,0);
    ptr++;
  }
}

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin für jede Hilfe dankbar!

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Huhu Frank,

>out(0x98, 0, 0);

lt. Datenblatt:

Display Mode 1 0 0 1 N3 N2 N1 N0

N3 Graphicmode
N2 Textmode
N1 + N0 Cursor gedönse

wenn Du Text sehen willst solltest du das dem Display auch mitteilen

also für nur Text:
out(0x94, 0, 0);

oder für Text und GFX
out(0x9C, 0, 0);


Grüßle Jochen

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch und btw. ein bisserl Zeit solltest Du den Leuten schon zum
Antworten lassen ;-)

Jochen

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jochen!

Danke für die Hilfe.

Hab das Programm abgeändert.
out(0x9C, 0, 0);
Leider sehe ich noch als kein Zeichen auf dem Display.

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.