Hallo ich habe folgendes Problem: Ich benutze ein Display (EA DIP203-6) mit einem Atmega64.Ich benutze die mikrocontroller.net ansteuerung im 4 bit modus. Das anzeigen von Text funktioniert wunderbar aber ich kann die Icons nicht löschen. Hatt vieleicht jemand einen paar Tipps wie ich dass machen könnte? Dass Datenblatt hab ich gelesen bin aber nicht richtig Schlau draus geworden.
Hi > Hatt vieleicht jemand einen paar Tipps wie ich >dass machen könnte? Dass Datenblatt hab ich gelesen bin aber nicht >richtig Schlau draus geworden. Wieso? Steht doch auf S.3 SetSEGRAM adr -> 0x40 16x Write Data 0x00 MfG Spess
Hi spess53 Ja dass hab ich auch gefunden aber dass problem ist eher wie ich dass in c code umwandle. Auch dass mit dem komischen RE-bit verrwirt mich ein bisschen. Könntest du dass vileicht als c code posten? Dass wäre sehr nett. Vielen Dank für die schnelle Antwort MFG smij
Hi >Ja dass hab ich auch gefunden aber dass problem ist eher wie ich dass in >c code umwandle. Auch dass mit dem komischen RE-bit verrwirt mich ein >bisschen. Das RE-Bit hat die Bitmaske 0x04. Da steht aber in deiner LCD_FUNCTION_5X10 in deiner LCD-routines.h. Wo stammt die her? Das solltest du in LCD_FUNCTION_RE umbenennen. Außerdem fehlen die Bitmasken für BE, LP, REV. Die Bits für den Befehl 'Function Set' haben teilweise unterschiedliche Bedeutung, je nachdem welchen Wert das RE-Bit hat. >Könntest du dass vileicht als c code posten? Ich benutze Assembler. Könnte aber in etwa so
1 | lcd_command( LCD_SET_FUNCTION | |
2 | LCD_FUNCTION_RE | |
3 | LCD_FUNCTION_4BIT | |
4 | LCD_FUNCTION_2LINE ); |
5 | |
6 | lcd_command( LCD_SET_SEG_RAM); |
7 | |
8 | for ( uint8_t i=0; i<16; i++ ) |
9 | {
|
10 | LCD_WRITEDATA(0x00); |
11 | }
|
12 | |
13 | lcd_command( LCD_SET_FUNCTION | |
14 | LCD_FUNCTION_4BIT | |
15 | LCD_FUNCTION_2LINE ); |
aussehen. MfG Spess
hi Vielen Dank für deine Antwort Die icons sind zwar immer noch da aber dass hatt mir schon mal geholfen :) Ich hab den Code jetzt in meinem Main direkt hinter dem lcd_init(); eingesetzt dass sollte so funtionieren oder? > LCD_WRITEDATA(0x00); Diese Funktion gibt es bei mir nicht kann ich die durch lcd_command ersetzen? Und laut datenblatt muss man ja auch noch das RS-bit setze, muss ich da noch etwas dazu schreiben? > lcd_command( LCD_SET_SEG_RAM); Nur damit ich dass richtig verstanden habe, dass kann ich durch lcd_command(0x40); ersetzen? Vielen Dank für deine gute Antwort und deine Geduld :) MFG smij
Hi >Diese Funktion gibt es bei mir nicht kann ich die durch lcd_command >ersetzen? Nein. Kannst aber dein lcd_data nehmen. >> lcd_command( LCD_SET_SEG_RAM); >Nur damit ich dass richtig verstanden habe, dass kann ich durch >lcd_command(0x40); ersetzen? Ja. Aber ich würde ein passendes #define in deine LCD-routines.h machen. MfG Spess
Hi
>Super jetzt funktioniert es !! :))
Glückwunsch. Trotzdem würde ich mal deine LCD-routines.h mit dem
Datenblatt des Displaycontrollers (SSD1803) vergleichen. Irgendwie passt
das nicht wirklich zusammen.
MfG Spess
Hi ja du hast recht zum teil hatt es noch störungen da zeigt es nur irgendwelches kauderwelsch an... Ich hatte allerdings gedacht dass es daran liegt dass ich die restlichen datenleitungen noch nicht auf ground gelegt habe... Falls dir gerade langweilig ist fällt dir gerade etwas sehr schlimmer auf? :) Falls nicht ist auch egal du hast mir ja scho genug geholfen :) MFG smij
Hi >ja du hast recht zum teil hatt es noch störungen da zeigt es nur >irgendwelches kauderwelsch an... Wie lang sind den die Leitungen zum Display? >Ich hatte allerdings gedacht dass es >daran liegt dass ich die restlichen datenleitungen noch nicht auf ground >gelegt habe... Das mit dem Gnd für D0..D3 ist ein, leider, weit verbreiteter Irrtum. Die Pins haben interne Pull-Up-Widerstände. MfG Spess
hi > Wie lang sind den die Leitungen zum Display? Die Leitungen sind nur ca.15cm lang. Ich denke dass wird weniger dass Problem sein. Wäre es vileicht möglich dass die Ansteuerung den "hohen" systemtakt nicht verträgt? Weil bei einem früheren Projekt mit einem einfacheren Display sind diese Störungen auch aufgetreten. allerdings nur mit einem Sytemstakt von 16MHz... Bei 11MHz lief alles normal... > Das mit dem Gnd für D0..D3 ist ein, leider, weit verbreiteter Irrtum. > Die Pins haben interne Pull-Up-Widerstände. Danke für den Hinweis MFG smij
Das Timing des SSD1803 Controllers ist unter aller Kanone, ich habe lange versucht diese Displays sauber zum Laufen zu bringen, ohne Erfolg. Irgendwas hängt da immer wieder, auch bei langsamste Kommunikation kommt es immer wieder aus dem Tritt. Ich kann von diesem Nachfolgedisplay nur abraten. Die 204 liefen ganz tadellos, der Nachfolger ist misraten.
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.