SSD1306 OLED Display

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Das wäre sehr schön. Ich versuche mich seit Tagen daran und hab keine Idee mehr. Dabei sollte es so einfach sein.
      Der Chip läuft mit 8 Mhz, die Fuses sind auf ohne Vorteiler eingestellt. Baudrate 9600,n,8,1.
      Ich nutze einen 168 und davon PD0/PD1

      Habs auch schon mit nem 8Mhz Quarz probiert und die Fuses entsprechend auf externen Takt gestellt. Brachte nix

      Mein Programm:

      Source Code

      1. $Regfile = "m168def.dat"
      2. $Crystal =8000000
      3. $baud = 9600
      4. $hwstack = 40
      5. $swstack = 16
      6. $framesize = 32
      7. '*********************diverses**********************
      8. 'Open "comd.6:9600,8,n,1" For Output As #2
      9. do
      10. 'Print #2,"12345"
      11. Print "12345"
      12. waitms 500
      13. Loop
      14. End
      Display All
    • Das sollte eigendlich sehr geschmeidig laufen (0,bischen Baud-fehler) Möglicherweise hängt er etwas daneben versuch mal:
      Dim temp as byte , a as byte
      Temp = Osccal
      temp=temp -30
      for a= 1 to 50
      Print " Hallo "
      Print temp
      incr temp
      osccal = temp
      waitms 500
      next

      Dann sollte er zuerst Müll aus bringen, dann etwas besser, dann lesbar und zum schluß wieder Müll.
      Der mittlere Wert muß dann als Oscal gestzt werden.
    • Hat nichts gebracht, die Ausgabe im Terminal sieht mehr oder weniger so aus, nichts lesbares dabei.

      Der verwendete Code:

      Source Code

      1. $Regfile = "m168def.dat"
      2. $Crystal =8000000
      3. $baud = 9600
      4. $hwstack = 40
      5. $swstack = 16
      6. $framesize = 32
      7. '*********************diverses**********************
      8. 'Open "comd.6:9600,8,n,1" For Output As #2
      9. do
      10. Dim temp as byte , a as byte
      11. Temp = Osccal
      12. temp=temp -30
      13. for a= 1 to 50
      14. Print " Hallo "
      15. Print temp
      16. incr temp
      17. osccal = temp
      18. waitms 500
      19. next
      20. Loop
      21. End
      Display All
      Files
      • Unbenannt.PNG

        (36.97 kB, downloaded 28 times, last: )
    • Ohne Worte, das war tatsächlich der Fehler.
      Habe es auf inverted gestellt, eine SW UART genommen und einen Lauf gestartet.
      Danach osccal auf 135 gestellt und jetzt läuft die Ausgabe astrein.
      Der Adapter ist ein FTDI Chip fest im USB Gehäuse vergossen. Ich werde einmal andere Adapter testen. Jetzt hab ich nach der ganzen Zeit endlich einmal etwas worauf ich aufbauen kann!

      Woran hast du erkannt das die Daten invertiert sind?

      BESTEN Dank! :thumbup: :thumbup: :thumbup:
      Files
      • Unbenannt.PNG

        (21.73 kB, downloaded 18 times, last: )
    • 17b wrote:

      Der Adapter ist ein FTDI Chip
      Mir sind bisher nur welche mit TTL Anschluß begegnet. Möglicherweise hängt noch ein Max drinn. Bevor Du den Rx anschließt mess mal den Pegel. +5V im Ruhezustand wäre TTL , -8-15V wäre "Orginal" 232. Zu schade wenn da was abrauchen würde. Quick and Dirty wäre 4k7 in Reihe.

      17b wrote:

      Woran hast du erkannt das die Daten invertiert sind?
      Die Zeichen waren "zu falsch" bei fast stimmender Anzahl. Liegt er nur etwas daneben siehts gesünder aus. (wie bei 127/143..)
    • Ich habe jetzt den im USB Stecker versteckten FTDI gegen eine "normale" FTDI Platine getauscht wie man die für schmalen Schekel bei Sparkfun kaufen kann. Auf das "inverted" im open Befehl kann ich nun verzichten, anscheinend ist in meinem ersten Adapter tatsächlich noch ein Inverter eingebaut. For the Records, es ist ein PICAXE Programmierkabel.
      Auf eine Modifikation der osccal Variable konnte ich allerdings nicht verzichten. Der Mittelwert liegt mit deinem Programm bei 134, dann kommen nur noch "Hallo"s wie es sein sollte.
      Mich wundert nur, dass es bei einer so trivialen Sache wie Zeichen über die serielle Schnittstelle zu übertragen, solch einer Feinjustierung bedarf. Ist das BASCOM spezifisch oder Chipspezifisch? Kann mir das jemand erklären?

      Trotzdem nochmal ein fettes Danke!


      An die Mods: Vielleicht kann man alles ab #100 in einen separaten Thread kopieren oder verschieben, das hat mit den Displays ja nicht wirklich was zu tun und ist vielleicht für das nächste Greenhorn wie mich nützlich