Hallo liebes Forum, ich soll ein paar Dogm-Displays testen. Es sind alles 128. Ich bin leider kein Fachmann auf dem Gebiet und habe daher die letzten Tage viel auf dieser Seite verbracht. Hier mal kurz ein paar Infos zu meiner Umgebung: AVR Studio 4.18 Atmega32 auf STK500 Programmiert wird mit einem JtagIce MK2 Das Display ist wie folgt mit dem Atmega verbunden: PD7-> SCL PD6-> SI PD5-> A0 PD4-> RST PD3-> CS Das angehängte Programm habe ich zum größten Teil aus dem Forum hier. Ich möchte im Prinzip einmal alle Pixel ansteuern und dann wieder zurück setzten. Leider tut sich auf dem Display garnichts. Ist meine Routine grober Unfug oder kann es etwas anderes sein? Ich möchte von euch kein fertiges Programm haben sondern nur wissen wie ich an die Sache heran gehe. Da ich demnächst wohl öfters auf dem Gebiet tätig sein werde, bin ich für jede Erfahrung dankbar. Gruß Wolfgang
>Ist meine Routine grober Unfug oder kann es etwas anderes sein?
Ich sage nur DDRx.
Hallo Holger, danke für die Info. Ich muss also mit DDRD = 0xff; den Port D als Ausgang deklarieren. Ist dies so richtig? Muss dies an einer bestimmten Stelle(im Programm) geschehen oder ist das egal? Gruß Wolfgang
Ich habe es jetzt an verschiedenen Stellen probiert. Ohne Erfolg. Auch die einzelne Deklaration mit bsp.: DDRD |= (1 << DOGCS); brachte keinen Erfolg. Ich bin jetzt zuhause und habe nur ein Display mitgenommen. Kann es sein das genau dieses defekt ist? Den Anschluss habe ich nach Datenblatt vorgenommen. Ich habe auch schon geprüft ob die 3,3V sauber anliegen. Gruß Wolfgang
du brauchst auf jeden Fall erstmal ein Gut-Muster, ohne geht gar nichts... dann lese dich in SPI ein, voallem was da Ausgang ist und was Eingang dann kannst an deinem GUT-Muster dein Programm testen.
Hallo docean, ich fürchte ich versteh dich nicht recht. Was ist ein Gut-Muster? Und wenn ich mich nicht verguckt habe, muss das Display an einen Ausgang vom Microcontroller. Eingänge werde also nicht benötigt. Zumal ich vom Display auch keine Daten lesen kann. Oder habe ich da was übersehen? Gruß Wolfgang
>Eingänge werde also nicht benötigt. Zumal ich vom >Display auch keine Daten lesen kann. >Oder habe ich da was übersehen? Das ist korrekt. Als erstes solltest du dafür sorgen das der Reset Pin auch auf High ist wenn du in das Display schreibst;)
Ich habe das Programm gerade mal überarbeitet. Leider immernoch ohne Erfolg. Ich habe in vielen Programmen gesehen das dort Header-Dateien verwendet wurden. Ist dies zwingend notwendig oder geht es auch ohne? Ist es vll einfacher nur einen Pixel einzeln anzusteuern? Ich will möglichst einfach anfangen und mich dann immer weiter vertiefen. Das Prinzip einer SPI-Schnittstelle habe ich, so denke ich, verstanden. Es hapert immoment an der Ansteuerung... Gruß Wolfgang
Hi
>Ist es vll einfacher nur einen Pixel einzeln anzusteuern?
Nein, weil nicht möglich. Acht Pixel sind jeweils in einem Byte
verpackt. Ehrlich gesagt solltest vielleicht erst mal das Datenblatt vom
Display und vom verwendeten Controller (ST7565R) lesen.
MfG Spess
@Holger Wenn die Funktion dogOut aufgerufen wird, werden ja auch die Daten übertragen. Daher muss hier Reset auf high, oder nicht? @Spess Das mit den "Datenwörtern" übertragen habe ich mir gerade nochmal angeschaut. Ein irres Gewusel an einsen und nullen... Da bleibe ich wohl lieber erstmal bei meiner Variante. Im Anhang ein Bild vom heimischen Aufbau.
Hi
>Im Anhang ein Bild vom heimischen Aufbau.
Elkos! Habe ich fast befürchtet. Ich habe es selbst nicht getestet, aber
mit Elkos hatten hier schon etliche Probleme. Mit 1µ-Kerkos laufen die
Dogs bei mir tadellos. Mess mal die Spannung an Vout. Sollte >=10V sein.
MfG Spess
Beitrag "Library für EA-DOGM Grafikdisplays inkl. Font-Generator" Um das mal abzukürzen. Da gibt es alles fertig. Zwar nicht per Software SPI, aber man kann sich einmal im Leben ja mal einen anständigen Controller kaufen;)
Hi >Um das mal abzukürzen. Da gibt es alles fertig. >Zwar nicht per Software SPI, aber man kann sich >einmal im Leben ja mal einen anständigen Controller kaufen;) Was hat das mit anständigen Controller zu tun? Im Gegensatz zur hier öfters propagierten Soft-UART ist eine Soft-SPI wesentlich einfacher und problemloser. MfG Spess
@Spess AHA :) Wobei es ja eigentlich keinen Unterschied machen sollte, sofern richtig angeschlossen. Dies habe ich gerade nochmal geprüft. Aber ich werde mal morgen ein paar KerKos mitnehmen und es dann nochmal versuchen. @ holger Ich möchte eigentlich nicht auf etwas fertiges zurückgreifen. Ich will den langen Weg der Selbsterfahrung gehen, denn nur so sammel ich auch Erfahrungen. Und das AHA- Erlebnis ist einfach um Welten besser ;) Ich habe gerade festgestellt das ich wohl einen kleinen Kabeldreher hatte. Leider gehts immer noch nicht. Ist mein Programm denn soweit okay?
Hi
>AHA :) Wobei es ja eigentlich keinen Unterschied machen sollte,...
Was liegt denn nun an Vout (Pin32) an?
MfG Spess
Hmm leider nur 2,32V. Das ist wohl zu wenig... Also doch Kerkos !? Oder ist hat das Display eine Macke? Gruß Wolfgang
>Ich möchte eigentlich nicht auf etwas fertiges zurückgreifen. Ich will >den langen Weg der Selbsterfahrung gehen, denn nur so sammel ich auch >Erfahrungen. Und das AHA- Erlebnis ist einfach um Welten besser ;) Und was hindert dich daran mal bei anderen reinzusehen die diese Erfahrungen schon gesammelt haben? Da findest du wertvolle Informationen. Stell dir mal vor es gäbe kein Internet. Deine Frage nach Hilfe hier ist doch nichts anderes. Du möchtest das dir jemand Code gibt oder deinen Code verbessert. Vieleicht hat ja keiner Lust deinen Code anzusehen, den mit anderen zu vergleichen und dir dann zu sagen was du falsch machst? >Ich möchte eigentlich nicht auf etwas fertiges zurückgreifen. So und jetzt mal ein bisschen härter; Dann mach deinen Scheiß doch alleine! Ich tue es ja auch;)
>Oder ist hat das Display eine Macke?
Auf dem Bild ist jedenfalls sowas wie ein Riss zu erkennen.
Hi
>Also doch Kerkos !? Oder ist hat das Display eine Macke?
Eher Ersteres.
MfG Spess
@ Holger Du hast ja recht;) Ich werde mich heute mal mit deinem Link beschäftigen und hoffe ich sehe dann ein paar Sachen klarer. Der Riss ist in dem Touchpannel. @Spess Ich werde heute mal ein paar 1uF Kerkos besorgen. Wie anfällig ist den der ST7565? Also kann es sein das der evtl. schon zerschossen ist? Gruß Wolfgang
Hi >Wie anfällig ist den der ST7565? Also kann es sein das der evtl. schon >zerschossen ist? Bis jetzt habe ich noch keinen ins Jenseits befördert. Allerdings habe ich es auch nicht darauf angelegt. MfG
Hallo, ich habe heute die Elkos gegen Kerkos getauscht und mir das Beispiel von Holger nochmal genau angeschaut, und ein paar fehler in meinem Programm gefunden. Nun geht das Display :) Was ich noch nicht hinbekommen habe ist das, wenn er die Pixel alle angesteuert hat (#define DisplayBLK 0xA5) wieder alle Pixel löschen (#define DisplayCLR 0xA4) Ich mache das in einer Schleife die so aussieht:
1 | while(1){ |
2 | DOGENABLE; |
3 | dogSPIout(DisplayBLK);//Alle Pixel ansteuern |
4 | DOGDISABLE; |
5 | _delay_ms(2500); |
6 | DOGENABLE; |
7 | dogSPIout(DisplayCLR);//Alle Pixel ansteuern |
8 | DOGDISABLE; |
9 | _delay_ms(2500); |
10 | } |
Es bleiben aber immer ein paar Pixel "hängen". Ich habe es jetzt mit Reset gelöst nur muss ich dann jedesmal die Init neu ausführen. Gruß Wolfgang
Hallo Wolfgang, ich habe zur Zeit das gleiche Problem. Ich wär dir sehr dankbar, wenn du den Programmcode mal posten könntest.
Hi Die Befehle haben keinen Einfluss auf den Displayinhalt. Du musst nur einfach den Displayspeicher mit $00 beschreiben, um das Display zu löschen. MfG Spess
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.