OLED NHD-0220CW funktioniert nicht

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • OLED NHD-0220CW funktioniert nicht

      Ich versuche schon einige Zeit diese Display mit I2C und Atmeg8 zum Laufen zu bekommen.
      Ich habe einige Initroutinen aus dem Internet ausprobiert.
      Bei einigen hatte ich auch eine Anzeige, aber immer war irgenwas verkehrt.
      Entweder stand der Text auf dem Kopf, oder wurde von rechts nach links
      geschrieben, oder die Buchstaben hatten doppelte Breite.
      Um eine Grundlage auf einer Grundlage zu arbeiten habe ich vom Hersteller
      des Display die Initroutine in Bascom übernommen.
      Jetzt habe ich überhaupt keine Anzeige mehr, auch nicht mir anderen schon
      erfolgreichen Versuchen. Das Display ist anscheined in einem Zustand, aus dem es nicht
      mehr erwacht?????
      Ich hoffe ihr könnt mir weiterhelfen.
      Angehängt mein Programm und das Datenblatt des Controllers
      Dateien
    • Versuch doch mal die Variante, bei der der Text auf dem Kopf stand.
      Da funktioniert schon mal die Initialisierung und die Textausgabe.

      Sollte das auch nicht auf Anhieb laufen, dann schalte mal alles ab.
      Aber nicht nur Reset machen. Richtig Strom weg, Minute warten. Dann wieder einschalten.

      Dann sollte zumindest das Display wieder ein Lebenszeichen von sich geben.
    • Danke Mitch,
      hab ich gemacht und dann probiert.
      Bin zurück auf die alte Initialisierung gegangen.
      Der command Entry Mode set COM0->COM31 hat die Schrift richtig
      herum rennen lassen.
      Das nächste Problem.
      Die Sonderzeichen werden falsch angezeigt.
      Laut Tabelle ist ROM-C ausgewählt. Ich brauche aber ROM-B
      Mit dem command 72 und verschiedenen Angaben ändert sich aber nichts.
      Muss ich da noch woanders was ändern?
    • Bei Sonderzeichen musst du in die Zeichensatztabelle des Displays schauen, welche ASCII-Nummern für die Sonderzeichen verwendet werden.

      Wenn angenommen das große 'Ä' die ASCII-Nr 213 (dez) hätte. dann kannst du die Nr. in geschweiften Klammern angeben (dreistellig) für das Sonderzeichen. im String angeben

      Etwa so: Print "{213}tsch" ' gibt 'Ätsch' aus.

      Das Print muss natürlich durch deine Ausgabe-Routine ersetzt werden.

      Alternativ geht auch Print chr(213);"tsch"

      Ist das gleiche Ergebnis.
    • Aber die Char Table in deinem Rechner muss ja nicht mit der Char Table im Display identisch sein.
      Wenn du in der Bascom IDE ein "Ä" schreibst, hat das im Speicher ein, zwei, drei, vier Byte je nach Zeichensatz und ausgewählter Interpretation der Zeichen.

      Kurz: "Ä" ist NICHT gleich "Ä"

      Wenn du ein Datenblatt des Display hast und die Zeichen des Display darin definiert sind, dann musst du im Grunde alle Zeichen außer Zeichencodes unterhalb 128 nach Mitch64s Vorschlag ausgeben, sonst bekommst du Probleme.
      Code first, think later - Natural programmer :D
    • Hast du denn auch die HW Pins entsprechend gesetzt?


      ROM[1:0] I

      These pins are used to select Character ROM; select appropriate logic setting as described in the following table. ROM1 and ROM0 are pin select as shown in below table:

      Table 4-5 : Character ROM selection

      ROM1 ROM0 ROM

      0 0 A

      0 1 B

      1 0 C

      1 1 S/W selectable by extended command 72h “Function Selection B”; details refer toTable 6-2.

      Also beide auf High damit du per SW auswählen kannst.



    • Hallo Franz,
      jetzt bin ich ratlos.
      Das Setzen der ROM pins geschieht mit den Befehl 72.
      In der Tabelle 6-2 steht bei ROM 11b invalid.
      Wie soll ich dann die Funktion S/W selectable auswählen.
      Um einen ROM auszuwählen, sollte ich dann den Befehl 72 nochmals mit
      z.B 01B für ROM B ausführen?
      Vielleicht kannst du mich aufklären
    • @ditt
      Ich nehme an es geht dir um die deutschen Umlaute?

      Die sind in beiden Zeichensätzen enthalten. Ich denke du brauchst gar nicht den Zeichensatz umzuschalten.
      Du musst nur wissen welcher Zeichensatz eingestellt ist und damit verwendet wird.

      Das "Ä" (große Ä) ist im ROM-A z.B. an Ascii-Position &b0101_1011 und in ROM-B an Position &b1010_0000.

      Kannst ja das Ascii-Zeichen mal ausgeben Chr(&b1010_0000), wenn dann Ä kommt, ist Zeichensatz ROM-B aktiv, was ja für Englisch, Deutsch etc vorgesehen ist.
      Dann kannste die anderen Zeichen die noch für dein Vorhaben relevant sind aus diesem Rom raussuchen.
      Steht alles in deinem Datenblatt auf den letzten 3 Seiten.