Datum: 05.05.2008 22:56
ich bräuchte mal für blöde erklärt wie das mit der erstellung, der eingabe und der verwendung der eigenen zeichen bei einem EA DIP204-4 mit KS0073 funktioniert. ja ich habe das datenblatt gelesen und auch schon hier im forum gesucht aber aus beidem bin ich nicht schlau geworden. meine bisherige vorgehensweise: lcd im 4-bit mode initialiesieren // klappt inzwischen einwandfrei dann rs auf 0 setzen // instruction mode cgram adresse 0b01000000 on das display senden // erst die oberen 4 und dann die unteren 4 bit rs auf 1 setzen // data mode sende ich die 8 byte für mein zeichen das ich erstellen möchte rs auf 0 clear lcd rs auf 1 asci zeichen 0x00 darstellen // ab hier tut sich nixmehr und das display bleibt blank währe vieleicht einer so nett und könnte mir mal ainen beispielcode (C) oder genaues ablaufschema aufzeigen ich hänge da jetzt schon seit 2 tagen dran und krig es einfach nicht gebacken mfg thomas
Datum: 06.05.2008 00:39
Datenblatt anhängen bitte?? Gruss
Datum: 06.05.2008 07:29
Hallo, Bei mir funktioniert es wie im Datenblatt beschrieben. Allerdings muss man einen Stolperstein beachten: Die ASCII-Zeichen 0x00...0x07 stellen Steuerzeichen dar, die je nach Ausgabefunktion unerwünscht interpretiert werden können. 0x00 beendet z.B. einen C-String. Wenn die Ausgabefunktion mit C-Strings operiert und als erstes 0x00 ausgegeben werden soll, ist möglicherweise schon Schluss bevor es angefangen hat. Mit einer Einzelzeichenausgabe sollte es aber klappen. Tschüss Torsten
Datum: 06.05.2008 14:43
im anhang das vom controller und hier http://www.lcd-module.de/deu/pdf/doma/dip204-4.pdf das vom display an sich mfg Thomas
Datum: 06.05.2008 15:12
// Typendefinition typedef unsigned char byte; typedef unsigned int word; // KS0073 DIP204 Sonderzeichen byte code sonderzeichen[] = { // Beispiele für 8 Sonderzeichen 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F, 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F, 0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F, 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F, 0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F, 0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F }; // *********************************************************************** // Definieren eines Sonderzeichen // Übergabe: lcd_addr : Adresse // lcd_zeichen: Zeiger auf das 1. Byte der Zeichendefinition // *********************************************************************** void write_lcd_cg(byte lcd_addr, byte *lcd_zeichen) { byte lcd_i; for(lcd_i = 0; lcd_i < 8; lcd_i++) { write_lcd(0x40 + lcd_addr * 8 + lcd_i,1); // CG RAM Adresse Set (01aa azzz) write_lcd(*lcd_zeichen,0); // Data Write 8x Pixelzeile lcd_zeichen++; } } // *********************************************************************** // Definieren von 8 Sonderzeichen // Übergabe: lcd_zeichen: Zeiger auf das Zeichenfeld (8x8 Byte) // *********************************************************************** void write_lcd_cg_block(byte *sonderzeichenblock) { byte lcd_i; for(lcd_i = 0; lcd_i < 8; lcd_i++) { write_lcd_cg(lcd_i, &sonderzeichenblock[lcd_i * 8]); } } // ******************************************************************** // Hauptprogramm // ******************************************************************** void main (void) { write_lcd_cg_block(sonderzeichen); // Sonderzeichen definieren write_byte_lcd(0); // Sonderzeichen 0-7 darstellen (aktuelle Kursorpos.) write_byte_lcd(1); write_byte_lcd(2); write_byte_lcd(3); write_byte_lcd(4); write_byte_lcd(5); write_byte_lcd(6); write_byte_lcd(7); } |
Für write_lcd und write_byte_lcd verwende Deine funktionierenden LCD-Ausgaberoutinen, es geht hier nur ums Prinzip.
Datum: 05.06.2008 23:35
Hallo Thomas Müller Ich wäre auch an eigenen Zeichen interessiert. Funktioniert es bei dir jetzt? Hast du das Display auch wie in diesem Beitrag angeschlossen? Beitrag "LCD EA DIP204-4 Initialisieren" Falls ja, wäre es möglich den Code hier zu posten? Das wäre super. Wenn alles funktioniert, stelle ich auch mal alle Beiträge zusammen. Dann kann man das Display initialisieren, eigene Zeichen erstellen etc. Das wäre doch cool! Danke und Gruss Alain
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel


