Hallo Besucher, der Thread wurde 32k mal aufgerufen und enthält 170 Antworten
letzter Beitrag von Vorph am
LCD am sd2iec [EXPERTENRUNDE]
- jackdaniels
- Erledigt
-
-
Ich möchte das Thema kurz nochmal ansprechen weil ich vorhabe die LCD-Platine Morgen gerne aufzubauen.
Darum wollte ich kurz anfragen ob das ganze nach dem Schema wie ich es aufgezeichnet habe funktionieren wird.Oder könnte man noch etwas verbessern?
-
Was mir auffällt: Beim Regler fehlen die beiden Kondensatoren und die GND-Leitung von C1 und C2 ist irgendwie umständlich verlegt.
-
Zitat
GND-Leitung von C1 und C2 ist irgendwie umständlich verlegt
Stimmt.
Sow ie siehts jetzt aus? Laut Datenblatt müßten die Kondensatorwerte stimmen.
-
So, gerade mal getestet:
So wie es aussieht dürfte das ein Initialisierungsfehler sein. Wenn ich nämlich nach dem Einschalten dem Display-AVR einen Reset verpasse werden sowohl der Pfeil Links wie auch der Menü-Pfeil korrekt dargestellt.
Liegt es daran das DTV, SD2IEC und Display-AVR an der gleichen Spannungsquelle hängen und gleichzeitig mit Spannung versorgt werden?
Vielleicht ist das auch der Grund warum das Display manchmal gleich im Menü startet.
Kann ich hier alles nicht reproduzieren, daher gehe ich erstmal davon aus dass du das selbst kaputtgebastelt hast und überlasse es daher dir den Fehler auch selbst zu beseitigen. -
Kann ich hier alles nicht reproduzieren, daher gehe ich erstmal davon aus dass du das selbst kaputtgebastelt hast und überlasse es daher dir den Fehler auch selbst zu beseitigen.
Hm, warum denn gleich so abweisend? Im Prinzip funktioniert ja alles wunderbar. Ich habe den Code ja nur von 4 Zeilen auf 2 Zeilen angepasst und dabei nur die Teile angefasst die du vorgeschlagen hast.
Du hast ja auch nicht die Umgebung die ich hier verwende. Ich habe das ganze ja in eine 1571 gepackt, mit DTV, SD2IEC und noch ein paar anderen netten spielerein. Das ist sicher nicht die optimale Betriebsweise, aber mir reicht es schon wenn es die Hauptfunktionen spielt.
Ich kann ja mal bei Gelegenheit den Originalcode von dir auf einem 2-Zeiligen Display laufen lassen. Mal sehen ob da ebenfalls die Darstellungsfehler auftreten, was ich fast vermute.Aber du könntest ja auch testweise wenn du die Schaltung noch Grifbereit hast, meinen modifizierten Code auf deinen AVR flashen und schaun was passiert. Das würde mir dann bei der Fehlersuche auch schon sehr weiterhelfen.
-
Ich kann ja mal bei Gelegenheit den Originalcode von dir auf einem 2-Zeiligen Display laufen lassen. Mal sehen ob da ebenfalls die Darstellungsfehler auftreten, was ich fast vermute.
Ich gehe davon aus, das bei dir entweder die Schaltung oder der Code fehlerhaft sind. Wenn die Sonderzeichen nur manchmal erfolgreich beim Display landen deutet das auf Timingprobleme hin, aber das Programm wartet stets darauf dass das Display sein Busy-Bit zurücknimmt. Beide Sonderzeichen werden direkt nach der LCD-Initialisierung gesetzt, welche als letztes das Display löscht - das ist die Operation die bei diesen Chips meist am längsten dauert. Wenn der AVR das Busy-Bit des Displays nicht richtig auslesen kann könnte es durchaus sein, dass die Displayansteuerung meistens doch funktioniert, aber eben nach solchen längeren Operationen etwas verlorengeht.ZitatAber du könntest ja auch testweise wenn du die Schaltung noch Grifbereit hast
Habe ich nicht, ich hatte das Display nur nochmal kurz angeklemmt bevor ich das Steckbrett abgeräumt habe. -
Ich gehe davon aus, das bei dir entweder die Schaltung oder der Code fehlerhaft sind.
Die Schaltung hab ich, wie oben dargestellt, aufgebaut.
Was den Code betrifft, kann ich nicht allzuviel mitreden. Da kann ich wirklich einfach nur "probieren".
Kannst du was herauslesen, wenn ich dir zumindest den mal zuschicke? -
Kannst du was herauslesen, wenn ich dir zumindest den mal zuschicke?
Für verbastelten und nicht aus einer Release-Version gebauten Code gibts von mir keinen Support. -
Für verbastelten und nicht aus einer Release-Version gebauten Code gibts von mir keinen Support.
Bleibt mir ja nichts anderes übrig als den Code anzupassen, wenn dieser nur für ein 4-Zeiliges Display vorgesehen ist.
-
Kannst du mir sagen wo in deinem Originalcode der Text der Versionsnummer der am Display erscheint hinterlegt ist?
Finde ich den im Code des Displays oder des SD2IEC?Bzw, wo wird der ausgegeben?
-
Kannst du mir sagen wo in deinem Originalcode der Text der Versionsnummer der am Display erscheint hinterlegt ist?
Finde ich den im Code des Displays oder des SD2IEC?
Das ist der Versionsstring von sd2iec und wird von dem ans Display geschickt.ZitatBzw, wo wird der ausgegeben?
main.c, CONFIG_REMOTE_DISPLAY-#ifdef-Block fast am Ende der Datei -
main.c, CONFIG_REMOTE_DISPLAY-#ifdef-Block fast am Ende der Datei
Ah, habs. Danke!
Übrigens ich glaub ich hab den Fehler gefunden bezüglich den verstümmelten Zeichensatz und dem Displayinitialisieren.
Es dürfte diese Zeile gewesen sein:
Code- switch (data[0]) {
- case DISPLAY_INIT:
- lcd_clrscr();
- menu_resetlines();
- menuentry = -1;
- menustate = MST_RESET;
- for (i=0;i<sizeof(lcdline)/sizeof(linebuffer_t);i++) {
- memset(&lcdline[i],0,sizeof(linebuffer_t));
- }
- set_line(0, length-1, data+1, 0);
- // strcpy_P(lcdline[3].contents, status_line_str);
- break;
Die Zeile strcpy_P(lcdline[3].contents, status_line_str); hatte ich vergessen auszukommentieren.
Da wird ja anscheinend auf Zeile 4 noch was ausgegeben. (Was auch immer)Bzw. hab ich den Block
komplett auskommentiert. Also nicht nur das in Klammer.
Weiß aber nicht ob das wirklich darauf eine Auswirkung hatte.Jedenfalls erscheint jetzt beim einschalten immer gleich nur die Versionsnummer und die Pfeile werden auch korrekt dargestellt. Hoffe es bleibt so.
Ach ja, ich würde gerne die Menüführung eindeutschen, wenn das ok wäre. Weiß aber ebenfalls nicht wo die Texte da zusammengebastelt werden.
Moment, ich habe da was gefunden in der display.c
Mir sind nur die Führenden Zeichen Unklar:"\xc3""HANGE DIRECTORY\0"
Warum hast du da PETSCII-Zeichencode verwendet? Wo find ich denn dazu eine Übersetzungstabelle?
Kann man eigentlich Umlaute verwenden? -
Unseen, bräuchte noch einen Tip von dir.
Wenn ich anstelle der Versionsnummer zb. ein "Wilkommen" anzeigen möchte, wie lautet da der Code dafür?
Bzw. auch in der zweiten Zeile etwas anzeigen möchte. -
Wenn ich anstelle der Versionsnummer zb. ein "Wilkommen" anzeigen möchte, wie lautet da der Code dafür?
In main.c im "case DISPLAY_INIT"-Block vor dem "break;" einfügen: strcpy_P(lcdline[0].contents,PSTR("Dein Text hier"));ZitatBzw. auch in der zweiten Zeile etwas anzeigen möchte.
An gleicher Stelle: strcpy_P(lcdline[1].contents,PSTR("Dein anderer Text hier")); -
Git´s hier schon wieder Neuigkeiten? Leider hat derSchatten seinen Umbau am Treffen nicht zeigen wollen!
Ich werde das ganze mal mit dem 4 zeiligen Display und dem Drehencoder (beide von Pollin) die Tage mal nach bauen.
znarF -
Hallo znarF,
welche Infos benötigst du denn?
Auf einem 2Zeiler funktioniert das ganze perfekt.Ich hänge momentan nur beim 4Zeiligen.
Da will mein Eigenbau nicht richtig. -
welchen Encoder hast du genommen?
Verwendest du auch das LCD mit 4x27 vom Pollin?
Hast du nun nen externen Quarz für den Display-AVR?
Wie sieht die Stromversorgung aus bzw. welche Teile laufen nun mit 5V und welche mit 3V?
znarF -
Also,
der Encoder ist ein Alps ENCODER STEC11B03 Gibts bei Conrad um knapp 6 EURONEN
Habs auch mit einem günstigeren probiert, damit lief das ganze aber nicht.Ich habe mehrere ausprobiert:
2x16 von Pollin
2x20 von ???
4x20 von CSD-Electronics
4x40 von CSD-ElectronicsLaufen alle bis auf das 4x20. Warum auch immer.
Ideal wäre natürlich ein 4x27 (falls du vor hast eines zu bestellen, gib mir bitte bescheid)
Ich habe jetzt von den Display-AVR einen eigenen Quarz genommen, weil ich es anders noch nicht hinbekommen habe. Damit bist du auf jedenfall auf der sicheren Seite.
Beide AVRs laufen mit 5V. Nur das SD-Interface wird mit einer Pegelanpassung auf 3V getrimmt.
-
Ideal wäre natürlich ein 4x27 (falls du vor hast eines zu bestellen, gib mir bitte bescheid)
Hab ich schon die ganze Zeit vor, ich warte eigentlich nur noch auf ein paar Kollgegen um die Versandkosten zu minimieren! Schick mir ne PM!
znarF