tag auch, ich habe ein problem mit meinem EA DOGM162-display. ich weiss, dass es dazu schon einen thread gibt, aber des ist mittlerweile etwas sehr lang und unübersichtlich geworden, so hielt ich es für eine bessere idee einen neuen thread zu erstellen. also folgendes: ich habe ein uC-board mit dem siemens C517A aufgebaut. das funktioniert mittlerweile schon recht gut, und nachdem es mir jetzt verleidet ist, immer nur LEDs leuchten zu lassen und über den UART sinnlose daten mit meinem laptop auszutauschen habe ich mich nochmal an das display gewagt. nun habe ich es im 8 bit-modus: DB0...DB7 an P4, E an P3.3, RS an P3.4 und RW an P3.5 - soweit so gut. RESET habe ich mit dem resetausgang des microcontrollers verbunden (der C517A hat einen reset ausgang, der jeweils bei einem reset auf low geht). alles ist genau gemäss datenblatt des displays angeschlossen. nun versuche ich schon seit stunden, das display zu initialisieren - es geht einfach nicht!! nie tut sich was. ich habe die init-beispiele aus den datenblatt des ST7036 und des displays selbst probiert - ohne erfolg. das display ist NEU - das kann doch nicht kaputt sein!! was mache ich falsch? liegts am timing? ich habe jetzt die watezeiten soweit heraufgeschraubt, dass ich mittlerweile 65 ms warte. ist das zu lang? oder immernoch zu kurz? dazu prüfe ich jedesmal das busy flag, doch das scheint sich überhaupt nie zu ändern. es ist immer H. ich wäre echt froh, wenn jemand dazu was wüsste und mir helfen könnte, langsam verzweifle ich echt. grüsse tobias
Hier mal meine Init hab auch ewig gebraucht bis ich das Teil am Laufen hatte . BYTE const LCD_INIT_STRING[9] = {0x29,0x1c,0x52,0x69,0x70,0x0c,0x28,0x01,0x06}; void lcd_init() { BYTE i; set_tris_lcd(LCD_WRITE); lcd.rs = 0; lcd.rw = 0; lcd.enable = 0; delay_ms(5); for(i=1;i<=3;++i) { lcd_send_nibble(3); delay_ms(5); } lcd_send_nibble(2); delay_ms(5); for(i=0;i<=8;++i) { lcd_send_byte(0,LCD_INIT_STRING[i]); delay_ms(5); } Hoffe das hilft dir soweit . Achja hast du das Teil im 3,3V oder 5V Modus laufen ? Ach was mir da gerade auffällt ... Falls mich nicht alles täuscht ist der Reseteingang des Displays nicht auf low zu ziegen sondern auf High bei Reset . Du würdest praktisch immer einen Reset machen . Also prüfe mal dein Schaltbild denn der Reset des DOG ist High aktiv . Mfg Tino
Sorry ist doch Low-aktiv dann war das wohl ein anderes Display mit dem Reset . Aber guck mal über die Init vielleicht holft sie dir ja .
hallo tino, danke für dein programmbeispiel. ich probiere das morgen aus, heute reichts wahrscheinlich nicht mehr ;) ich habe mich in der zwischenzeit of über das etwas amateurhafte datenblatt geärgert, das electronic assembly zu dem display anbietet. die sache ist nicht ganz lupenrein, z.b. hängt der reset-pin mal an plus, mal an minus, je nach dem, welches bildchen oder welche tabelle man anschaut. dann ist der reset-pin mal als "RESET" und ein anderes mal als "/RESET" bezeichnet... welche bezeichnung gilt jetzt?? zumindest das weiss ich ja nun dank deiner beschreibung ;) gruss tobias
Das Datenblatt von Electronic Assembly hat mehrere Fehler. Sehr lustig. Man kann sie aber finden, wenn man etwas mitdenkt. Ich habe hier irgendwo im Forum einige Code-Beispiele u.a. auch in C zur Verfügung gestellt. Daran kann man sich dann orientieren. Das Ganze ist im Endeffekt sehr einfach und sollte hinzubekommen sein.
hallo wolfram, kann schon sein, dass du recht hast, wenn d sagst, man finde die fehler im datenblatt wenn man mitdenkt. aber ich habe leider noch absolut keine erfahrung mit lc-displays, deshalb meine ich KANN man nicht wissen, dass der RESET-pin low-aktiv ist, wenn man es nicht schon anderswo so gesehen hat (das jetzt nur als beispiel). ich werd auf jeden fall noch nach einigen codebeispielen von dir suchen. gruss tobias
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.